home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / docs / inter45a / interrup.c < prev    next >
Encoding:
Text File  |  1995-03-26  |  338.2 KB  |  9,730 lines

  1. Interrupt List, part 3 of 12
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. --------b-1560------------------------------------
  4. INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
  5.     AH = 60h
  6.     AL = new speed
  7.         00h normal (8 MHz)
  8.         01h Slow Mode 1 (4 MHz)
  9.         02h Slow Mode 2 (2 MHz)
  10. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  11.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  12. SeeAlso: AX=6301h
  13. --------p-156000-----------------------------
  14. INT 15 U HP 100LX/200LX - GET MAIN BATTERY LEVEL
  15.     AX = 6000h
  16. Return: AX = battery level
  17. Note:    multiply the returned value with 1Bh and add 622h to get millivolts
  18. SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
  19. --------p-156001-----------------------------
  20. INT 15 U HP 100LX/200LX - GET BACKUP BATTERY LEVEL
  21.     AX = 6001h
  22. Return: AX = battery level
  23. Note:    multiply the returned value with 1Bh and add 622h to get millivolts
  24. SeeAlso: AX=6000h,AX=6002h
  25. --------p-156002-----------------------------
  26. INT 15 U HP 100LX/200LX - GET POWER INFO
  27.     AX = 6002h
  28. Return: AL = power settings (see #0369)
  29. SeeAlso: AX=6000h,AX=6003h,AX=6004h
  30.  
  31. Bitfields for power settings:
  32. Bit(s)    Description    (Table 0369)
  33.  0-1    unused ???
  34.  2    card battery status low (OK if bit clear)
  35.  3    battery charging off (disabled if bits 3-5 clear)
  36.  4    battery charging slow
  37.  5    battery charging fast
  38.  6    power adaptor active
  39.  7    battery type NiCad (alkaline if bit clear)
  40. --------p-156003-----------------------------
  41. INT 15 U HP 100LX/200LX - SET MAIN BATTERY TYPE
  42.     AX = 6003h
  43.     BL = battery type
  44.         00h alkaline
  45.         01h NiCad
  46. SeeAlso: AX=6000h,AX=6004h
  47. --------p-156004-----------------------------
  48. INT 15 U HP 100LX/200LX - SET BATTERY CHARGING MODE
  49.     AX = 6004h
  50.     BL = charging
  51.         00h disabled
  52.         01h enabled
  53. SeeAlso: AX=6000h,AX=6003h
  54. --------b-1561------------------------------------
  55. INT 15 - HUNTER 16 - GET POWER LEVEL
  56.     AH = 61h
  57. Return: AH = percentage of full power left (0..100)
  58. Desc:    determine how much battery power is left
  59. SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
  60. --------b-1561-------------------------------
  61. INT 15 U HP 100LX/200LX - SET ANNOUNCIATORS POSITION
  62.     AH = 61h
  63.     AL = position (20h = left, 60h = right)
  64. Note:    The announciators are the indicator symbols for the Shift and Fn keys
  65.       in the bottom line
  66. SeeAlso: INT 16/AH=02h
  67. --------b-1562------------------------------------
  68. INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
  69.     AH = 62h
  70.     AL = level (00h 5%, 01h 10%, ... 12h 95%)
  71.     BX = interval between power low warnings in seconds (1..600)
  72. Return: AH = Status
  73. Desc:    set the level (relative to full power) when power-low warnings begin
  74.       and the interval between the warnings
  75. SeeAlso: AH=61h,AH=65h,AH=66h
  76. --------b-156300----------------------------------
  77. INT 15 - HUNTER 16 - GET IDLE TIMEOUT
  78.     AX = 6300h
  79. Return: AH = status
  80.     BX = timeout in seconds (0-3600)
  81. Desc:    get the idle timeout value, the interval without keyboard or
  82.        communications activity before the system shuts down
  83. SeeAlso: AX=6301h
  84. --------b-156301----------------------------------
  85. INT 15 - HUNTER 16 - SET IDLE TIMEOUT
  86.     AX = 6301h
  87.     BX = timeout in seconds (0-3600)
  88. Desc:    sets the idle timeout value, the interval without keyboard or
  89.       communications activity before the system shuts down
  90. SeeAlso: AX=6300h
  91. --------b-1564------------------------------------
  92. INT 15 - HUNTER 16 - CONTROL RESUME MODE
  93.     AH = 64h
  94.     AL = new state
  95.         00h disable Resume mode
  96.         01h enable Resume mode
  97. Return: AH = status
  98. Desc:    turn Resume mode on or off. In Resume mode the system starts in
  99.       the application that was running when it shut down as if nothing 
  100.       had happened.
  101. SeeAlso: AH=67h,AH=68h,AH=69h
  102. --------b-1565------------------------------------
  103. INT 15 - HUNTER 16 - AUTHORISE CHARGING
  104.     AH = 65h
  105.     AL = charging level
  106.         01h charging not allowed
  107.         02h charging allowed until power down
  108.         03h charging allowed until batteries changed or fail.
  109.         Ask user if charging is still allowed on next poweron
  110.         04h charging allowed indefinitely
  111.     BX = 0203h
  112.     CX = 0405h
  113.     DX = 0607h
  114. Return: AH = status
  115. SeeAlso: AH=66h,AH=68h
  116. --------b-1566------------------------------------
  117. INT 15 - HUNTER 16 - SET BATTERY LEVEL
  118.     AH = 66h
  119.     AL = level in percent of maximum (0..100)
  120. Return: AH = status
  121. SeeAlso: AH=61h,AH=65h
  122. --------b-1567------------------------------------
  123. INT 15 - HUNTER 16 - CONTROL STOP MODE
  124.     AH = 67h
  125.     AL = mode when waiting for input
  126.         00h use STOP mode (allows communication)
  127.         01h use HALT mode (disallows communication)
  128. Return: AH = status
  129. Desc:    select the power save mode to use when waiting for input
  130. SeeAlso: AH=69h
  131. --------b-1568------------------------------------
  132. INT 15 - HUNTER 16 - REQUEST POWER DOWN
  133.     AH = 68h
  134. Desc:    turns off the Hunter 16 if power down is allowed (see AH=69h)
  135. SeeAlso: AH=69h
  136. --------b-1569------------------------------------
  137. INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
  138.     AH = 69h
  139.     AL = mode
  140.         00h inhibit power down
  141.         01h allow power down
  142. Return: AH = status
  143. SeeAlso: AH=67h,AH=68h,AH=6Ah
  144. --------b-156A------------------------------------
  145. INT 15 - HUNTER 16 - CONTROL SLOW MODE
  146.     AH = 6Ah
  147.     AL = mode
  148.         00h inhibit Slow mode
  149.         01h allow Slow mode
  150. Return: AH = status
  151. SeeAlso: AH=69h
  152. --------b-156B------------------------------------
  153. INT 15 - HUNTER 16 - GET ROM BIOS VERSION
  154.     AH = 6Bh
  155. Return: BH = version number (ASCII)
  156.     BL = release number (ASCII)
  157.     CH = minor release number (ASCII)
  158.     CL = minor release number (ASCII)
  159. SeeAlso: AH=6Ch
  160. --------b-156C------------------------------------
  161. INT 15 - HUNTER 16 - GET SERIAL NUMBER
  162.     AH = 6Ch
  163. Return: BL:CX = BCD serial number
  164. Note:    when shipped, all Hunter 16s have the same Serial Number, but a
  165.       different number can be stored (see AH=72h)
  166. SeeAlso: AH=6Bh,AH=72h
  167. --------b-156D------------------------------------
  168. INT 15 - HUNTER 16 - GET EVENT DETAIL
  169.     AH = 6Dh
  170. Return: AH = 00h if successful
  171.     CX:BX = event flags bit 0..31 (see #0370)
  172. Note:    this function allows testing for events
  173. SeeAlso: AH=6Eh,AH=6Fh
  174.  
  175. Bitfields for HUNTER 16 events:
  176. Bit(s)    Description    (Table 0370)
  177.  6    RI received
  178.  5    RTC Alarm
  179.  4    data received on COM2
  180.  3    data received on COM1
  181.  2    error on COM2
  182.  1    error on COM1
  183.  0    PWR button pressed
  184. --------b-156E------------------------------------
  185. INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
  186.     AH = 6Eh
  187.     AL = Software Interrupt
  188.           00h  do not trap event
  189.           else trap as software interrupt number AL
  190.     BH = event number (see AH=6Dh)
  191.     BL = enable mask
  192.         00h disable event
  193.         01h enable event
  194. Return: AH = 00h if successful
  195. SeeAlso: AH=6Dh,AH=6Fh
  196. --------b-156F------------------------------------
  197. INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
  198.     AH = 6Fh
  199.     AL = event number (see AH=6Dh)
  200. Return: AH = 00h if successful
  201. Desc:    Acknowledges the event, so the next similar event can be detected 
  202. SeeAlso: AH=6Dh"HUNTER",AH=6Eh
  203. ----------157000-----------------------------
  204. INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
  205.     AX = 7000h
  206.     BL = number of word to read (00h-3Fh)
  207. Return: CF clear if function supported
  208.         DX = contents of EEPROM word
  209. Note:    newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
  210.       the clock chip to store system configuration information
  211. SeeAlso: AX=7001h
  212. ----------157001-----------------------------
  213. INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
  214.     AX = 7001h
  215.     BL = number of word to read (00h-3Fh)
  216.     DX = new value for EEPROM word
  217. Return: CF clear if function supported
  218. Note:    the EEPROMs are normally written only by the system setup program;
  219.       changing the values can badly mess up a Tandy
  220. SeeAlso: AX=7000h
  221. --------b-1570------------------------------------
  222. INT 15 - HUNTER 16 - CONTROL SOUND
  223.     AH = 70h
  224.     AL = new state
  225.         00h disable sound
  226.         else enable sound
  227. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  228.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  229. --------b-1571------------------------------------
  230. INT 15 - HUNTER 16 - SELECT POWER UP KEYS
  231.     AH = 71h
  232.     BL = column
  233.     BH = row
  234.     AL = column switch (00h disable, 01h enable)
  235.     CL = row switch (00h disable, 01h enable)
  236. Return: AH = status
  237. SeeAlso: AH=7Bh,AH=88h
  238. --------b-157200----------------------------------
  239. INT 15 - HUNTER 16 - RESET SERIAL NUMBER
  240.     AX = 7200h
  241. Return: AH = 00h if successful
  242. Desc:    reset the serial number to the default serial number present when the
  243.       Hunter 16 was shipped
  244. SeeAlso: AH=6Ch,AH=72h
  245. --------b-1572------------------------------------
  246. INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
  247.     AH = 72h
  248.     AL nonzero
  249.     DS:BX -> new serial number (6 ASCII digits)
  250. Return: AH = 00h if successful
  251. Desc:    install a new serial number
  252. SeeAlso: AH=6Ch,AX=7200h
  253. --------b-1573------------------------------------
  254. INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
  255.     AH = 73h
  256.     AL = drive (0: A:, 1: B:)
  257. Return: AH = status
  258.         00h successful
  259.         FFh Oracle GT drive not connected
  260.     AL = power level in percent of maximum (0..100)
  261. Desc:    get the power remaining in the Oracle GT batteries
  262. SeeAlso: AH=61h
  263. --------b-1574------------------------------------
  264. INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
  265.     AH = 74h
  266.     AL = new level
  267.         01h off
  268.         02h unchanged
  269.         03h change level
  270.         BL = desired level (00h-7Fh)
  271. Return: AH = status
  272. Desc:    select the backlight level to use when the Hunter is next turned on
  273. SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
  274. --------b-1575------------------------------------
  275. INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
  276.     AH = 75h
  277.     AL = new level
  278.         01h off
  279.         02h unchanged
  280.         03h change level
  281.         BL = desired level (00h-7Fh)
  282. Return: AH = status
  283. Desc:    select the LCD contrast level to use when the Hunter is next turned on
  284. SeeAlso: AH=63h,AH=74h
  285. --------b-1576------------------------------------
  286. INT 15 - HUNTER 16 - CONTROL POWER SAVE
  287.     AH = 76h
  288.     BX = power save control (see #0371)
  289. SeeAlso: AH=74h
  290.  
  291. Bitfields for HUNTER 16 power save control:
  292. Bit(s)    Description    (Table 0371)
  293.  0    power save enabled
  294.  1    inhibit power save when waiting for COM1 data
  295.  2    inhibit power save when waiting for COM2 data
  296.  3    inhibit power save when waiting for data from barcode wand
  297.  4    inhibit power up on timer tick
  298. --------b-1579------------------------------------
  299. INT 15 - HUNTER 16 - REDIRECT LPT1
  300.     AH = 79h
  301.     AL = port to which to redirect (00h COM1, 01h COM2)
  302. --------b-157A------------------------------------
  303. INT 15 - HUNTER 16 - INVOKE HOT KEY
  304.     AH = 7Ah
  305. Desc:    this function has the same effect as pressing the HOT key
  306. SeeAlso: AH=7Bh
  307. --------b-157B------------------------------------
  308. INT 15 - HUNTER 16 - CONTROL HOT KEY
  309.     AH = 7Bh
  310.     AL = 00h prevent HOT key
  311.         else allow HOT key
  312. Desc:    Allow or prevent the HOT key function which is used to examine and
  313.       change the Hunter setup
  314. SeeAlso: AH=71h,AH=7Ah,AH=7Ch
  315. --------b-157C------------------------------------
  316. INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
  317.     AH = 7Ch
  318.     AL = 00h prevent HOT key power option
  319.         else allow HOT key power option
  320. Desc:    allow or prevent changing the power options
  321. SeeAlso: AH=7Bh,AH=7Dh
  322. --------b-157D------------------------------------
  323. INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
  324.     AH = 7Dh
  325.     AL = 00h turn off after 10 warnings
  326.         else never turn off
  327. Desc:    specify whether the Hunter 16 turns off after 10 low power warnings
  328. SeeAlso: AH=7Ch
  329. --------b-157E------------------------------------
  330. INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
  331.     AH = 7Eh
  332.     AL = 00h do not prompt
  333.         else prompt
  334. Desc:    select whether the user is prompted for the battery state if the
  335.       battery cap has been off when the system is turned on
  336. SeeAlso: AH=7Fh
  337. --------b-157F------------------------------------
  338. INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
  339.     AH = 7Fh
  340.     AL = battery type
  341.         00h     non-rechargeable
  342.         else rechargeable
  343. SeeAlso: AH=7Eh
  344. --------B-1580-------------------------------
  345. INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
  346.     AH = 80h
  347.     BX = device ID
  348.     CX = process ID
  349.     CF clear
  350. Return: CF clear if successful
  351.         AH = 00h
  352.     CF set on error
  353.         AH = status (see #0372)
  354. Note:    this function should be hooked by a multitasker which wishes to keep
  355.       track of device ownership; the default BIOS handler merely returns
  356.       successfully
  357. SeeAlso: AH=81h,AH=82h
  358.  
  359. (Table 0372)
  360. Values for status:
  361.  80h    invalid command (PC,PCjr)
  362.  86h    function not supported (XT)
  363. --------b-1580------------------------------------
  364. INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
  365.     AH = 80h
  366.     AL = function
  367.         00h get
  368.         Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
  369.         else set
  370.         BL = battery capacity (same as AL above)
  371. SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
  372. --------B-1581-------------------------------
  373. INT 15 C - OS HOOK - DEVICE CLOSE
  374.     AH = 81h
  375.     BX = device ID
  376.     CX = process ID
  377.     CF clear
  378. Return: CF clear if successful
  379.         AH = 00h
  380.     CF set on error
  381.         AH = status (see #0372)
  382. Note:    this function should be hooked by a multitasker which wishes to keep
  383.       track of device ownership; the default BIOS handler merely returns
  384.       successfully
  385. SeeAlso: AH=80h,AH=82h
  386. --------b-1581------------------------------------
  387. INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
  388.     AH = 81h
  389.     AL = new state of power output (00h off, nonzero on)
  390. Desc:    turn the +5V low power output on or off
  391. SeeAlso: AH=80h"HUNTER"
  392. --------B-1582-------------------------------
  393. INT 15 C - OS HOOK - PROGRAM TERMINATION
  394.     AH = 82h
  395.     BX = process ID
  396.     CF clear
  397. Return: CF clear if successful
  398.         AH = 00h
  399.     CF set on error
  400.         AH = status (see #0372)
  401. Notes:    closes all devices opened by the given process ID with function 80h
  402.     this function should be hooked by a multitasker which wishes to keep
  403.       track of device ownership; the default BIOS handler merely returns
  404.       successfully
  405. SeeAlso: AH=80h,AH=81h
  406. --------b-1582------------------------------------
  407. INT 15 - HUNTER 16 - SOUND OUTPUT
  408.     AH = 82h
  409.     DX = length (duration in seconds = DX * 666670 / frequency)
  410.     BX = pitch (see #0373)
  411. Desc:    Sound the tone specified in BX for the duration in DX
  412. SeeAlso: AX=1019h
  413.  
  414. (Table 0373)
  415. Values for HUNTER 16 sound pitch:
  416. BX(dec)     Note    Frequency    BX(dec)     Note    Frequency
  417.   425    G    1568.000     1515    A     440.000
  418.   451    F#    1479.503     1605    G#     415.307
  419.   477    F    1396.900     1701    G     392.000
  420.   506    E    1318.500     1802    F#     369.998
  421.   536    D#    1244.523     1909    F     349.230
  422.   568    D    1174.700     2022    E     329.630
  423.   601    C#    1108.749     2143    D#     311.127
  424.   637    C    1046.500     2270    D     293.660
  425.   675    B     958.770     2405    C#     277.183
  426.   715    A#     932.329     2548    MID C     261.630
  427.   758    A     880.000     2700    B     246.940
  428.   803    G#     830.609     2860    A#     233.081
  429.   850    G     783.990     3030    A     220.000
  430.   901    F#     739.990     3210    G#     207.654
  431.   954    F     698.460     3401    G     196.000
  432.  1011    E     659.260     3604    F#     184.996
  433.  1071    D#     622.257     3818    F     174.610
  434.  1135    D     587.330     4045    E     164.810
  435.  1203    C#     554.365     4286    D#     155.560
  436.  1274    C     523.250     4540    D     146.830
  437.  1350    B     493.880     4668    C#     142.827
  438.  1430    A#     466.162     4803    C     138.810
  439. --------B-1583-------------------------------
  440. INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
  441.     AH = 83h
  442.     AL = subfunction
  443.         00h set interval
  444.         CX:DX = microseconds to delay
  445.         ES:BX -> byte whose high bit is to be set at end of interval
  446.         01h cancel wait interval
  447. Return: CF set on error or function already busy
  448.         AH = status
  449.         80h invalid command (PC,PCjr)
  450.         86h function not supported (XT and later)
  451.     CF clear if successful
  452. Notes:    the resolution of the wait period is 977 microseconds on most systems
  453.       because most BIOSes use the 1/1024 second fast interrupt from the AT
  454.       real-time clock chip which is available on INT 70
  455.     IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
  456. SeeAlso: AH=41h,AH=86h,INT 70
  457. --------b-1583------------------------------------
  458. INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
  459.     AH = 83h
  460.     AL = state of LCD window (00h disabled, nonzero enabled)
  461. Desc:    Enable/disable the facility where the displayed window tracks the
  462.       cursor output to keep the focus visible
  463. --------B-1584-------------------------------
  464. INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
  465.     AH = 84h
  466.     DX = subfunction
  467.         0000h read joystick switches
  468.         Return: AL bits 7-4 = switch settings
  469.         0001h read positions of joysticks
  470.         Return: AX = X position of joystick A
  471.             BX = Y position of joystick A
  472.             CX = X position of joystick B
  473.             DX = Y position of joystick B
  474. Return: CF set on error
  475.         AH = status (see #0372)
  476.     CF clear if successful
  477. Notes:    if no game port is installed, subfunction 0000h returns AL=00h (all
  478.       switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
  479.     a 250kOhm joystick typically returns 0000h-01A0h
  480. SeeAlso: AH=84h"V20-XT-BIOS"
  481. --------U-1584-------------------------------
  482. INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
  483.     AH = 84h
  484.     DX = subfunction
  485.         0000h read joystick switches
  486.         Return: AL bits 7-4 = switch settings
  487.         other: read positions of joysticks as indicated by bits 0-3
  488.         Return: AX = X position of joystick A (if DX bit 0 set)
  489.             BX = Y position of joystick A (if DX bit 1 set)
  490.             CX = X position of joystick B (if DX bit 2 set)
  491.             DX = Y position of joystick B (if DX bit 3 set)
  492. Return: CF set on error
  493.         AH = status (see #0372)
  494.     CF clear if successful
  495. Program: V20-XT-BIOS is a BIOS extension by Peter Koehlmann / c't magazine
  496. SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
  497. --------b-158400----------------------------------
  498. INT 15 - HUNTER 16 - GET DISKETTE PORT
  499.     AX = 8400h
  500.     BH = Drive (0: A:, 1: B:)
  501. Return: AL = Port (0: COM1, >0: COM2)
  502. Desc:    return the COM port used for the floppy drive
  503. SeeAlso: AX=8401h
  504. --------b-158401----------------------------------
  505. INT 15 - HUNTER 16 - SET DISKETTE PORT
  506.     AX = 8401h
  507.     BH = Drive (0: A:, 1: B:)
  508.     BL = Port (0: COM1, >0: COM2)
  509. Desc:    set the COM port used for the floppy drive
  510. SeeAlso: AX=8400h
  511. --------B-1585-------------------------------
  512. INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
  513.     AH = 85h
  514.     AL = SysReq key action (00h pressed, 01h released)
  515.     CF clear
  516. Return: CF clear if successful
  517.         AH = 00h
  518.     CF set on error
  519.         AH = status (see #0372)
  520. Notes:    called by keyboard decode routine
  521.     the default handler simply returns successfully; programs which wish
  522.       to monitor the SysReq key must hook this call
  523.     the SysReq key is often labeled SysRq
  524. SeeAlso: INT 09
  525. --------b-158500----------------------------------
  526. INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
  527.     AX = 8500h
  528. Desc:    restore the standard power menu
  529. SeeAlso: AX=8501h"HUNTER"
  530. --------b-158501----------------------------------
  531. INT 15 - HUNTER 16 - SET POWER MENU (APM)
  532.     AX = 8501h
  533.     BL = user software interrupt number
  534. Desc:    install an alternate power menu routine
  535. SeeAlso: AX=8500h"HUNTER"
  536. --------B-1586-------------------------------
  537. INT 15 - BIOS - WAIT (AT,PS)
  538.     AH = 86h
  539.     CX:DX = interval in microseconds
  540. Return: CF clear if successful (wait interval elapsed)
  541.     CF set on error or AH=83h wait already in progress
  542.         AH = status (see #0372)
  543. Note:    the resolution of the wait period is 977 microseconds on most systems
  544.       because most BIOSes use the 1/1024 second fast interrupt from the AT
  545.       real-time clock chip which is available on INT 70
  546. SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
  547. --------b-1586------------------------------------
  548. INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
  549.     AH = 86h
  550.     AL = function (00h get, nonzero set)
  551.     BX = 1234h
  552.     DS:SI -> 256-byte Attribute buffer
  553. Note:    In text modes each character has its attribute byte XOR'd with the
  554.       corresponding byte in the attribute table.  If the attribute is 15,
  555.       15 is XOR'd with Table[15]
  556. --------B-1587-------------------------------
  557. INT 15 - SYSTEM - COPY EXTENDED MEMORY
  558.     AH = 87h
  559.     CX = number of words to copy (max 8000h)
  560.     ES:SI -> global descriptor table (see #0375)
  561. Return: CF set on error
  562.     CF clear if successful
  563.     AH = status (see #0374)
  564. Notes:    copy is done in protected mode with interrupts disabled by the default
  565.       BIOS handler; many 386 memory managers perform the copy with
  566.       interrupts enabled
  567.     this function is incompatible with the OS/2 compatibility box
  568. SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
  569.  
  570. (Table 0374)
  571. Values for extended-memory copy status:
  572.  00h    source copied into destination
  573.  01h    parity error
  574.  02h    interrupt error
  575.  03h    address line 20 gating failed
  576.  80h    invalid command (PC,PCjr)
  577.  86h    unsupported function (XT,PS30)
  578.  
  579. Format of global descriptor table:
  580. Offset    Size    Description    (Table 0375)
  581.  00h 16 BYTEs    zeros (used by BIOS)
  582.  10h    WORD    source segment length in bytes (2*CX-1 or greater)
  583.  12h  3 BYTEs    24-bit linear source address, low byte first
  584.  15h    BYTE    source segment access rights (93h)
  585.  16h    WORD    zero
  586.  18h    WORD    destination segment length in bytes (2*CX-1 or greater)
  587.  1Ah  3 BYTEs    24-bit linear destination address, low byte first
  588.  1Dh    BYTE    destination segment access rights (93h)
  589.  1Eh 18 BYTEs    zeros (used by BIOS)
  590. --------b-1587------------------------------------
  591. INT 15 - HUNTER 16 - SET INT 72h VECTOR
  592.     AH = 87h
  593.     DS:DX = new service routine
  594. Desc:    set the INT 72h vector which is called in 2 cases:
  595.       - when the machine is about to turn off or reboot, INT 72h is called
  596.         with AH=0
  597.       - when the machine is powering up INT 72h is called with AH=01h
  598. Note:    the actual INT 72h vector must also be changed with INT 21/AH=25h
  599. --------B-1588-------------------------------
  600. INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
  601.     AH = 88h
  602. Return: CF clear if successful
  603.         AX = number of contiguous KB starting at absolute address 100000h
  604.     CF set on error
  605.         AH = status
  606.         80h invalid command (PC,PCjr)
  607.         86h unsupported function (XT,PS30)
  608. Notes:    TSRs which wish to allocate extended memory to themselves often hook
  609.       this call, and return a reduced memory size.    They are then free to
  610.       use the memory between the new and old sizes at will.
  611.     the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
  612.       for memory beyond 16MB
  613.     not all BIOSes correctly return the carry flag, making this call
  614.       unreliable unless one first checks whether it is supported through
  615.       a mechanism other than calling the function and testing CF
  616. SeeAlso: AH=87h,AH=C7h
  617. --------b-1588------------------------------------
  618. INT 15 - HUNTER 16 - GET POWER UP KEYS
  619.     AH = 88h
  620. Return: AH = 00h
  621.     BX = column
  622.     CL = row
  623. SeeAlso: AH=71h
  624. --------B-1589-------------------------------
  625. INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
  626.     AH = 89h
  627.     BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
  628.     BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
  629.     ES:SI -> GDT for protected mode (see #0376)
  630. Return: CF set on error
  631.        AH = FFh  error enabling address line 20
  632.     CF clear if successful
  633.        AH = 00h
  634.        in protected mode at specified address
  635. Notes:    BL and BH must be multiples of 8
  636.     the protected-mode CS must reference the same memory as the CS this
  637.       function is called from because execution continues with the address
  638.       following the interrupt call
  639. SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
  640.  
  641. Format of BIOS switch-to-protected-mode Global Descriptor Table:
  642. Offset    Size    Description    (Table 0376)
  643.  00h  8 BYTEs    null descriptor (initialize to zeros)
  644.  08h  8 BYTEs    GDT descriptor (see #0377)
  645.  10h  8 BYTEs    IDT descriptor
  646.  18h  8 BYTEs    DS descriptor
  647.  20h  8 BYTEs    ES
  648.  28h  8 BYTEs    SS
  649.  30h  8 BYTEs    CS
  650.  38h  8 BYTEs    uninitialized, used to build descriptor for BIOS CS
  651.  
  652. Format of segment descriptor table entry:
  653. Offset    Size    Description    (Table 0377)
  654.  00h    WORD    segment limit, low word
  655.  02h  3 BYTEs    segment base address, low 24 bits
  656.  05h    BYTE    access mode (see #0378)
  657.  06h    BYTE    386+ extended access mode (see #0379)
  658.  07h    BYTE    386+ segment base address, high 8 bits
  659. SeeAlso: #0376,INT 2C/AX=0002h,INT 31/AX=0009h
  660.  
  661. Bitfields for segment descriptor table access mode field:
  662. Bit(s)    Description    (Table 0378)
  663.  3-0    segment type
  664.  4    descriptor type (1 = application, 0 = system)
  665.  6-5    descriptor privilege level
  666.  7    segment is present in RAM
  667. SeeAlso: #0377,#0379
  668.  
  669. Bitfields for 386+ segment descriptor table extended access mode field:
  670. Bit(s)    Description    (Table 0379)
  671.  3-0    high 4 bits of segment limit
  672.  4    available
  673.  5    reserved (0)
  674.  6    default operation size (1 = 32 bits, 0 = 16 bits)
  675.  7    granularity (1 = 4K, 0 = byte)
  676. SeeAlso: #0377,#0378,#1346
  677. --------b-158900----------------------------------
  678. INT 15 - HUNTER 16 - GET POWER MODE
  679.     AX = 8900h
  680. Return: AH = 00h
  681.     BL = current power mode
  682.         00h Standard Power Mode (SPM)
  683.         01h Advanced Power Mode (APM)
  684. SeeAlso: AX=8901h
  685. --------b-158901----------------------------------
  686. INT 15 - HUNTER 16 - SET POWER MODE
  687.     AX = 8901h
  688.     BL = new mode
  689.         00h Standard Power Mode (SPM)
  690.         01h Advanced Power Mode (APM)
  691. Return: AH = 00h
  692. SeeAlso: AX=8900h
  693. --------b-158A------------------------------------
  694. INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
  695.     AH = 8Ah
  696.     AL = new state of Power Input (00h disabled, nonzero enabled)
  697.     SI = 1234h
  698.     DI = 5678h
  699. Return: AH = status
  700.         00h success
  701.         FFh failure
  702. Desc:    Enable or disable Power Input. When Power Input is disabled the AC
  703.       adaptor will neither charge the batteries nor supply power to the
  704.       Hunter 16. Disable Power Input if using Alkaline batteries.
  705. --------b-158B------------------------------------
  706. INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
  707.     AH = 8Bh
  708.     AL = function
  709.         00h get
  710.         Return:    BH = Maximum charging temperature
  711.                 Temp = -20 + (n * 0.63) degrees Centigrade
  712.             BL = Minimum charging temperature
  713.         else set
  714.         BH = maximum charging temperature (as above)
  715.         BL = minimum charging temperature (as above)
  716. Return: AH = status
  717.         00h success
  718.         FFh failure 
  719. Desc:    get/set the temperature interval within which the charger should 
  720.       operate
  721. --------b-158C------------------------------------
  722. INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
  723.     AH = 8Ch
  724.     AL = function
  725.         00h get
  726.         Return: BX = which operations disable power save (see #0380)
  727.         else set
  728.         BX = which operations should disable power save (see #0380)
  729. SeeAlso: AH=8Dh
  730.  
  731. Bitfields for HUNTER 16 operations disabling power save:
  732. Bit(s)    Description    (Table 0380)
  733.  0    INT 10h prevents power save
  734.  1    INT 13h prevents power save
  735.  2    INT 14h prevents power save
  736.  3    INT 15h prevents power save
  737.  4    INT 1Ah prevents power save
  738.  5    INT 21h prevents power save
  739.  6    direct write to video RAM prevents power save
  740.  7    access to 8250 UART prevents power save
  741.  8    access to 8253 (Sound) prevents power save
  742. --------b-158D------------------------------------
  743. INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
  744.     AH = 8Dh
  745.     AL = function
  746.         00h get
  747.         Return: AL = Fast Charge state (00h prevented, else allowed)
  748.         nonzero set
  749.         BH = Fast Charge state (00h prevent, nonzero allow)
  750. Return: AH = status
  751.         00h success
  752.         FFh failure
  753. Desc:    control whether Fast Charging (200ma rather than 70ma) is allowed
  754. SeeAlso: AH=8Ch
  755. --------B-1590-------------------------------
  756. INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
  757.     AH = 90h
  758.     AL = device type (see #0381)
  759.     ES:BX -> request block for type codes 80h through BFh
  760.     CF clear
  761. Return: CF set if wait time satisfied
  762.     CF clear if driver must perform wait
  763.         AH = 00h
  764. Notes:    type codes are allocated as follows:
  765.       00-7F non-reentrant devices; OS must arbitrate access
  766.       80-BF reentrant devices; ES:BX points to a unique control block
  767.       C0-FF wait-only calls, no complementary INT 15/AH=91h call
  768.     floppy and hard disk BIOS code uses this call to implement a timeout;
  769.       for device types 00h and 01h, a return of CF set means that the
  770.       timeout expired before the disk responded.
  771.     this function should be hooked by a multitasker to allow other tasks
  772.       to execute while the BIOS is waiting for I/O completion; the default
  773.       handler merely returns with AH=00h and CF clear
  774. SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
  775.  
  776. (Table 0381)
  777. Values for device type:
  778.  00h    disk
  779.  01h    diskette
  780.  02h    keyboard
  781.  03h    PS/2 pointing device
  782.  21h    waiting for keyboard input (Phoenix BIOS)
  783.  80h    network
  784.  FBh    digital sound (Tandy)
  785.  FCh    disk reset (PS)
  786.  FDh    diskette motor start
  787.  FEh    printer
  788. --------B-1591-------------------------------
  789. INT 15 - OS HOOK - DEVICE POST (AT,PS)
  790.     AH = 91h
  791.     AL = device type (see #0381)
  792.     ES:BX -> request block for type codes 80h through BFh
  793.     CF clear
  794. Return: AH = 00h
  795. Note:    this function should be hooked by a multitasker to allow other tasks
  796.       to execute while the BIOS is waiting for I/O completion; the default
  797.       handler merely returns with AH=00h and CF clear
  798. SeeAlso: AH=90h
  799. ----------15A100-----------------------------
  800. INT 15 U - AMI PCI BIOS - SET ??? FLAG
  801.     AX = A100h
  802. Return: AX = 0000h
  803.     CF clear
  804. Desc:    sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
  805.       locations 3Eh and 3Fh
  806. Note:    in the examined version of the BIOS, nonzero values in AL cause it to
  807.       drop through to checking the next possible value of AH, i.e. only
  808.       subfunction 00h is supported
  809. --------n-15BA10-----------------------------
  810. INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
  811.     AX = BA10h
  812.     BL = event
  813.        00h the pen left control areas
  814.        01h the pen entered the Brightness- area
  815.        02h the pen entered the Brightness+ area
  816.        03h the pen entered the Contrast- area
  817.        04h the pen entered the Contrast+ area
  818. Return:    CF clear if successfully processed
  819.     CF set on error (function not supported, ie. not an OmniShare BIOS)
  820. Note:    The pen driver is responsible for detecting when the pen enters and
  821.       leaves control areas of the OmniShare tablet, and notifying the BIOS.
  822.     The BIOS manages the events, including the autorepetition, and sets
  823.       the status LEDs.
  824. SeeAlso: AX=BA20h,AX=BA13h
  825. --------n-15BA11-----------------------------
  826. INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
  827.     AX = BA11h
  828.     BL = new LED state (00h steady, 01h flashing)
  829. Return:    CF clear if successful
  830.     CF set on error
  831. Note:    this function is for use by communication software to give visual
  832.       feedback of active communications even if the display is in standby
  833.       mode.
  834. SeeAlso: AX=BA10h,AX=BA24h
  835. --------n-15BA12-----------------------------
  836. INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
  837.     AX = BA12h
  838.     BL = new battery state (00h good, 01h low charge)
  839. Return: CF set on error
  840.     CF clear if successfully stored in CMOS
  841. Note:    The last report will be displayed by the Power-On Self Test the next
  842.       time the OmniShare boots.  This allows something meaningful to be
  843.       reported even if the pen is not detected during the POST.
  844. SeeAlso: AX=BA13h
  845. --------n-15BA13-----------------------------
  846. INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
  847.     AX = BA13h
  848. Return: CF clear if successful
  849.         BL = pen battery state (00h good, 01h low charge)
  850.     CF set on error
  851. Note:    returns the last value set by AX=BA12h.
  852. SeeAlso: AX=BA12h
  853. --------p-15BA20-----------------------------
  854. INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
  855.     AX = BA20h
  856. Return: CF clear if successful (installed)
  857.     CF set on error (not installed)
  858. Notes:    The display controller can enter a standby mode after a given timeout,
  859.       to conserve power or (for the OmniShare) to increase the life of
  860.       the backlight.
  861.     A side effect of standby mode is that the communications LED turns on
  862.       automatically when the display is in standby mode.  This is done in
  863.       hardware, and is intended to show that the unit is still on.
  864. SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26h
  865. --------p-15BA21-----------------------------
  866. INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
  867.     AX = BA21h
  868.     BL = new timeout before standby mode in minutes (01h-0Fh)
  869.         00h to disable automatic switch to standby mode
  870. Return:    CF clear if successful
  871.     CF set on error (function not supported)
  872. Note:    The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
  873.       instead of (N*60) seconds as documented.
  874. SeeAlso: AX=BA20h,AX=BA22h
  875. --------p-15BA22-----------------------------
  876. INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
  877.     AX = BA22h
  878. Return:    CF clear if successful
  879.        BL = standy duration in minutes (01h-0Fh), or 00h if disabled
  880.     CF set on error (function not supported)
  881. Note:    The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
  882.       instead of (N*60) seconds as documented.
  883. SeeAlso: AX=BA20h,AX=BA21h
  884. --------p-15BA23-----------------------------
  885. INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
  886.     AX = BA23h
  887. Return: CF clear if successful
  888.     CF set on error
  889. SeeAlso: AX=BA11h,AX=BA20h,AX=BA24h
  890. --------p-15BA24-----------------------------
  891. INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
  892.     AX = BA24h
  893. Return: CF clear if successful
  894.     CF set on error
  895. Note:    This function is not implemented yet. Reserved for future versions
  896.       of the OmniShare.
  897. SeeAlso: AX=BA11h,AX=BA20h,AX=BA23h
  898. --------p-15BA25-----------------------------
  899. INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
  900.     AX = BA25h
  901. Return: CF clear if successful
  902.         AX = 25BAh
  903.         BX = PSP of STANDBY.COM resident portion
  904.         DX:CX -> previous INT 15 handler
  905.     CF set on error
  906. Note:    This function is used internally by the STANDBY.COM /u option, and
  907.       should not be used by application programs.
  908. SeeAlso: AX=BA20h
  909. --------p-15BA26-----------------------------
  910. INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
  911.     AX = BA26h
  912. Return: CF clear if successful
  913.         AL    = display state (00h active, 01h in standby mode)
  914.     CF set on error (function not supported)
  915. SeeAlso: AX=BA20h,AX=BA23h
  916. --------p-15BA27-----------------------------
  917. INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
  918.     AX = BA27h to BA2Fh
  919. Desc:    reserved for future use
  920. --------b-15BC-------------------------------
  921. INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
  922.     AH = BCh
  923. Return: CF clear
  924.     (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
  925.     (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
  926. Note:    this function reads system timer channel 0 twice, then does
  927.       calculations on the returned values to determine the delay loop
  928.       counter needed by the BIOS for beeps and floppy timeouts
  929. SeeAlso: AX=2305h
  930. --------E-15BF00-----------------------------
  931. INT 15 - Rational Systems DOS/16M - ???
  932.     AX = BF00h
  933.     ???
  934. Return: ???
  935. Note:    under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  936. SeeAlso: AX=BF02h
  937. --------E-15BF01-----------------------------
  938. INT 15 - Rational Systems DOS/16M - ???
  939.     AX = BF01h
  940.     ???
  941. Return: ???
  942. Notes:    under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  943.     called by DOS/4GW
  944. SeeAlso: AX=BF00h,AX=BF02h
  945. --------E-15BF02DX0000-----------------------
  946. INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
  947.     AX = BF02h
  948.     DX = 0000h
  949. Return: DX = nonzero if installed
  950.         DX:SI -> XBRK structure (see #0382)
  951. Note:    this function is also supported by DOS/4G
  952. SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
  953. SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
  954.  
  955. Format of DOS/16M XBRK structure:
  956. Offset    Size    Description    (Table 0382)
  957.  00h    DWORD    linear address of first available byte
  958.  04h    DWORD    linear address of last available byte + 1 ???
  959.  08h    DWORD    real-mode address of XBRK structure???
  960.  0Ch    DWORD    ???
  961.  10h  2 BYTEs    ???
  962.  12h    WORD    segment of ???
  963.  14h  8 BYTEs    ???
  964.  1Ch 512 BYTEs    protected-mode IDT
  965. 21Ch  N BYTEs    protected-mode GDT
  966. --------E-15BF03-----------------------------
  967. INT 15 - Rational Systems DOS/4GW - UNINSTALL???
  968.     AX = BF03h
  969.     BX = PSP segment of extender
  970.     ???
  971. Return: ???
  972. Note:    if BX is not the PSP segment of the extender, it passes the call down
  973.       the INT 15 chain; this allows nested instances of the extender
  974. SeeAlso: AX=BF06h
  975. --------E-15BF04-----------------------------
  976. INT 15 - Rational Systems DOS/4GW - ???
  977.     AX = BF04h
  978.     BX = PSP segment of extender
  979. Return: nothing???
  980. Notes:    if BX is not the PSP segment of the extender, it passes the call down
  981.       the INT 15 chain; this allows nested instances of the extender
  982.     grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
  983. SeeAlso: INT 2F/AX=1607h/BX=22C0h
  984. --------E-15BF05-----------------------------
  985. INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
  986.     AX = BF05h
  987.     BX = PSP segment of extender
  988. Return: nothing???
  989. Notes:    if BX is not the PSP segment of the extender, it passes the call down
  990.       the INT 15 chain; this allows nested instances of the extender
  991.     calls INT 67/AX=DE01h if ???
  992. --------E-15BF06-----------------------------
  993. INT 15 - Rational Systems DOS/4GW - ???
  994.     AX = BF06h
  995.     BX = PSP segment of extender
  996.     ???
  997. Return: ???
  998. Note:    if BX is not the PSP segment of the extender, it passes the call down
  999.       the INT 15 chain; this allows nested instances of the extender
  1000. SeeAlso: AX=BF03h
  1001. --------E-15BFDCDX0000-----------------------
  1002. INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
  1003.     AX = BFDCh
  1004.     DX = 0000h
  1005.     SI = 0000h
  1006. Return: DX = nonzero if installed
  1007.         DX:SI -> XBRK structure (see #0382)
  1008. SeeAlso: AX=BF02h
  1009. --------E-15BFDEBX0000-----------------------
  1010. INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
  1011.     AX = BFDEh
  1012.     BX = 0000h
  1013. Return: AX = ??? (0003h)
  1014.     BX = FFFFh
  1015. SeeAlso: AX=BF02h
  1016. --------E-15BFDEBX0001-----------------------
  1017. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
  1018.     AX = BFDEh
  1019.     BX = 0001h
  1020. Return: BX = 0000h (success)
  1021.     CX:DX -> name of process manager executable
  1022. SeeAlso: AX=BFDEh/BX=0000h
  1023. --------E-15BFDEBX0002-----------------------
  1024. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  1025.     AX = BFDEh
  1026.     BX = 0002h
  1027.     CX:DX -> ???
  1028. Return: BX = 0000h (success)
  1029. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
  1030. --------E-15BFDEBX0003-----------------------
  1031. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1032.     AX = BFDEh
  1033.     BX = 0003h
  1034. Return: BX = 0000h (success)
  1035.     CX:DX -> ???
  1036. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
  1037. --------E-15BFDEBX0004-----------------------
  1038. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1039.     AX = BFDEh
  1040.     BX = 0004h
  1041.     CL = ???
  1042. Return: BX = 0000h (success)
  1043.     CX:DX -> XBRK structure (see #0382)
  1044. SeeAlso: AX=BFDEh/BX=0000h
  1045. --------E-15BFDEBX0005-----------------------
  1046. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1047.     AX = BFDEh
  1048.     BX = 0005h
  1049.     CX = new value for ???
  1050. Return: BX = 0000h (success)
  1051.     AX = old value of ???
  1052.     DS:SI -> ??? (if AX nonzero on return)
  1053.     ES:DI -> ??? (if AX zero on return)
  1054. Note:    called by DOS4GW.EXE
  1055. SeeAlso: AX=BFDEh/BX=0000h
  1056. --------E-15BFDEBX0006-----------------------
  1057. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1058.     AX = BFDEh
  1059.     BX = 0006h
  1060. Return: BX = 0000h (success)
  1061.     AH = interrupt number??? (BEh)
  1062.     CX:DX = ???
  1063. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
  1064. --------E-15BFDEBX0007-----------------------
  1065. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  1066.     AX = BFDEh
  1067.     BX = 0007h
  1068.     CX:DX = ???
  1069. Return: BX = 0000h (success)
  1070. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
  1071. --------E-15BFDEBX0008-----------------------
  1072. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1073.     AX = BFDEh
  1074.     BX = 0008h
  1075.     CX = segment of ???
  1076.     DS = ???
  1077. Return: BX = status
  1078.         0000h successful
  1079.         AL = ??? (80h or C0h)
  1080.         DX = ??? (0603h) if AL=C0h
  1081.         0001h failed
  1082.         AX = 0000h
  1083. Note:    called by DOS4GW.EXE
  1084. SeeAlso: AX=BFDEh/BX=0000h
  1085. --------E-15BFDEBX0009-----------------------
  1086. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
  1087.     AX = BFDEh
  1088.     BX = 0009h
  1089. Return: BX = 0000h (success)
  1090.     CX:DX -> full pathname to LOAD32.EXP
  1091. SeeAlso: AX=BFDEh/BX=0000h
  1092. --------E-15BFDEBX000A-----------------------
  1093. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
  1094.     AX = BFDEh
  1095.     BX = 000Ah
  1096. Return: BX = 0000h (success)
  1097.     AX = new value of ??? counter
  1098. Notes:    also resets a variety of values if the counter goes negative
  1099.     called by DOS4GW.EXE
  1100. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
  1101. --------E-15BFDEBX000B-----------------------
  1102. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
  1103.     AX = BFDEh
  1104.     BX = 000Bh
  1105. Return: AX = new value of ??? counter
  1106. Note:    called by DOS4GW.EXE
  1107. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
  1108. --------E-15BFDEBX000C-----------------------
  1109. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1110.     AX = BFDEh
  1111.     BX = 000Ch
  1112.     CL = ???
  1113.         00h
  1114.         nonzero
  1115. Return: ???
  1116. SeeAlso: AX=BFDEh/BX=0000h
  1117. --------E-15BFDEBX000D-----------------------
  1118. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1119.     AX = BFDEh
  1120.     BX = 000Dh
  1121.     ???
  1122. Return: ???
  1123. SeeAlso: AX=BFDEh/BX=0000h
  1124. --------E-15BFDEBX000E-----------------------
  1125. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1126.     AX = BFDEh
  1127.     BX = 000Eh
  1128.     DX:CX -> ???
  1129. Return: AX = segment of handle for calling task
  1130.     BX = ??? (probably destroyed)
  1131.     DX:CX -> ???
  1132. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
  1133. --------E-15BFDEBX000F-----------------------
  1134. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  1135.     AX = BFDEh
  1136.     BX = 000Fh
  1137. Return: AX = segment of handle for calling task
  1138.     BX = ??? (probably destroyed)
  1139.     DX:CX -> ???
  1140. Note:    identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
  1141. SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
  1142. --------E-15BFDEBX0010-----------------------
  1143. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
  1144.     AX = BFDEh
  1145.     BX = 0010h
  1146. Return: AX = segment of caller's task handle
  1147.     BX destroyed
  1148. SeeAlso: AX=BFDEh/BX=000Fh
  1149. --------E-15BFDEBX0011-----------------------
  1150. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1151.     AX = BFDEh
  1152.     BX = 0011h
  1153. Return: CX = code segment of DVDOS4GX.DVR
  1154.     BX = ??? (0004h)
  1155. SeeAlso: AX=BFDEh/BX=0000h
  1156. --------E-15BFDEBX0012-----------------------
  1157. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1158.     AX = BFDEh
  1159.     BX = 0012h
  1160. Return: DX = code segment of DVDOS4GX.DVR
  1161.     BX = ??? (012Ch)
  1162.     CX = ??? (0006h)
  1163. SeeAlso: AX=BFDEh/BX=0000h
  1164. --------E-15BFDEBX0013-----------------------
  1165. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1166.     AX = BFDEh
  1167.     BX = 0013h
  1168. Return: DX:CX -> ???
  1169. SeeAlso: AX=BFDEh/BX=000Eh
  1170. --------E-15BFDEBX0014-----------------------
  1171. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
  1172.     AX = BFDEh
  1173.     BX = 0014h
  1174.     CX = index of ??? mailbox
  1175.         (0000h-0004h valid, but no range checking done)
  1176. Return: AX,BX destroyed
  1177. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  1178. --------E-15BFDEBX0015-----------------------
  1179. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
  1180.     AX = BFDEh
  1181.     BX = 0015h
  1182.     CX = index of ??? mailbox
  1183.         (0000h-0004h valid, but no range checking done)
  1184. Return: AX,BX destroyed
  1185. SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
  1186. --------E-15BFDEBX0016-----------------------
  1187. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
  1188.     AX = BFDEh
  1189.     BX = 0016h
  1190.     CX = index of ??? mailbox
  1191.         (0000h-0004h valid, but no range checking done)
  1192. Return: AX = status
  1193.         0000h no one owns mailbox
  1194.         0001h mailbox has an owner
  1195.     BX destroyed
  1196. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  1197. --------E-15BFDEBX0017-----------------------
  1198. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
  1199.     AX = BFDEh
  1200.     BX = 0017h
  1201.     CX = index of ??? mailbox
  1202.         (0000h-0004h valid, but no range checking done)
  1203. Return: AX = segment of mailbox owner's handle
  1204.     BX = segment of caller's task handle
  1205. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
  1206. --------E-15BFDEBXFFFD-----------------------
  1207. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  1208.     AX = BFDEh
  1209.     BX = FFFDh
  1210. Return: CX:DX = ???
  1211. SeeAlso: AX=BFDEh/BX=FFFEh
  1212. --------E-15BFDEBXFFFE-----------------------
  1213. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  1214.     AX = BFDEh
  1215.     BX = FFFEh
  1216.     CX:DX = ???
  1217. SeeAlso: AX=BFDEh/BX=FFFDh
  1218. --------E-15BFDEBXFFFF-----------------------
  1219. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
  1220.     AX = BFDEh
  1221.     BX = FFFFh
  1222. SeeAlso: AX=BFDEh/BX=0000h
  1223. --------B-15C0-------------------------------
  1224. INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
  1225.     AH = C0h
  1226. Return: CF set if BIOS doesn't support call
  1227.     CF clear on success
  1228.         ES:BX -> ROM table (see #0383)
  1229.     AH = status
  1230.         00h successful
  1231.         86h unsupported function
  1232. Notes:    the 1/10/86 XT BIOS returns an incorrect value for the feature byte
  1233.     the configuration table is at F000h:E6F5h in 100% compatible BIOSes
  1234.     Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
  1235.       and a model byte at absolute address FE845h (see #0389)
  1236.     Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
  1237.       a product identifier at F000h:00FAh (see #0392)
  1238.     Compaq machines can be identified by the signature string "COMPAQ" at
  1239.       F000h:FFEAh, and is preceded by additional information (see #0390)
  1240.     Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
  1241.       the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
  1242.       first three data bytes (model/submodel/revision) in the returned
  1243.       table
  1244.     Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
  1245.       a laptop information record at F000h:E000h (see #0393)
  1246.     some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
  1247.       past the end of the configuration table
  1248.     the Phoenix 386 BIOS contains a second version and date string
  1249.       (presumably the last modification for that OEM version) beginning at
  1250.       F000h:FFD8h, with each byte doubled (so that both ROM chips contain
  1251.       the complete information)
  1252. SeeAlso: AH=C7h,AH=C9h,AH=D1h
  1253.  
  1254. Format of ROM configuration table:
  1255. Offset    Size    Description    (Table 0383)
  1256.  00h    WORD    number of bytes following
  1257.  02h    BYTE    model (see #0388)
  1258.  03h    BYTE    submodel (see #0388)
  1259.  04h    BYTE    BIOS revision: 0 for first release, 1 for 2nd, etc.
  1260.  05h    BYTE    feature byte 1 (see #0384)
  1261.  06h    BYTE    feature byte 2 (see #0385)
  1262.  07h    BYTE    feature byte 3 (see #0386)
  1263.  08h    BYTE    feature byte 4 (see #0387)
  1264.  09h    BYTE    feature byte 5:
  1265.         reserved (0) (IBM)
  1266.         ??? (08h) (Phoenix 386 v1.10)
  1267. ---AWARD BIOS---
  1268.  0Ah  N BYTEs    AWARD copyright notice
  1269. ---Phoenix BIOS---
  1270.  0Ah    BYTE    ??? (00h)
  1271.  0Bh    BYTE    major version
  1272.  0Ch    BYTE    minor version (BCD)
  1273.  0Dh  4 BYTEs    ASCIZ string "PTL" (Phoenix Technologies Ltd)
  1274. ---Quadram Quad386---
  1275.  0Ah 17 BYTEs    ASCII signature string "Quadram Quad386XT"
  1276.  
  1277. Bitfields for feature byte 1:
  1278. Bit(s)    Description    (Table 0384)
  1279.  7    DMA channel 3 used by hard disk BIOS
  1280.  6    2nd 8259 installed
  1281.  5    Real-Time Clock installed
  1282.  4    INT 15/AH=4Fh called upon INT 09h
  1283.  3    wait for external event (INT 15/AH=41h) supported
  1284.  2    extended BIOS area allocated (usually at top of RAM)
  1285.  1    bus is Micro Channel instead of ISA
  1286.  0    system has dual bus (Micro Channel + ISA)
  1287. SeeAlso: #0383,#0385
  1288.  
  1289. Bitfields for feature byte 2:
  1290. Bit(s)    Description    (Table 0385)
  1291.  7    reserved
  1292.  6    INT 16/AH=09h (keyboard functionality) supported (see #0445)
  1293.  5    INT 15/AH=C6h (get POS data) supported
  1294.  4    INT 15/AH=C7h (return memory map info) supported
  1295.  3    INT 15/AH=C8h (en/disable CPU functions) supported
  1296.  2    non-8042 keyboard controller
  1297.  1    data streaming supported
  1298.  0    reserved
  1299. SeeAlso: #0383,#0386,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
  1300.  
  1301. Bitfields for feature byte 3:
  1302. Bit(s)    Description    (Table 0386)
  1303.  7-5    reserved
  1304.  4    ??? (set on 1992 PS/1's, N51SX, CL57SX, 35SX?, 40SX?)
  1305.  3    SCSI subsystem supported on system board
  1306.  2    information panel installed
  1307.  1    IML (Initial Machine Load) system
  1308.  0    SCSI supported in IML
  1309. SeeAlso: #0383,#0385,#0386
  1310.  
  1311. Bitfields for feature byte 4:
  1312. Bit(s)    Description    (Table 0387)
  1313.  7    ??? (set on N51SX, CL57SX)
  1314.  6-4    reserved
  1315.  3    ??? (set on some 1992 PS/1's, 35SX, 40SX)
  1316.  2-1    reserved
  1317.  0    ??? (set on N51SX, CL57SX, 57SX)
  1318. SeeAlso: #0383,#0386
  1319.  
  1320. (Table 0388)
  1321. Values for model/submodel/revision:
  1322. Model  Submdl  Rev    BIOS date    System
  1323.  FFh    *    *    04/24/81    PC (original)
  1324.  FFh    *    *    10/19/81    PC (some bugfixes)
  1325.  FFh    *    *    10/27/82    PC (HD, 640K, EGA support)
  1326.  FFh    00h    rev      ???        Tandy 1000SL
  1327.  FFh    01h    rev      ???        Tandy 1000TL
  1328.  FFh    46h    ***      ???        Olivetti M15
  1329.  FEh    *    *    08/16/82    PC XT
  1330.  FEh    *    *    11/08/82    PC XT and Portable
  1331.  FEh    *    *    ../..x..    Toshiba laptops up to ~1987
  1332.                     ("x"=product ID) (see #0394)
  1333.  FEh    43h    ***      ???        Olivetti M240
  1334.  FEh    A6h    ???      ???        Quadram Quad386
  1335.  FDh    *    *    06/01/83    PCjr
  1336.  FCh    *    *    01/10/84    AT models 068,099 6 MHz 20MB
  1337.  FCh    00h    00h      ???        PC3270/AT
  1338.  FCh    00h    01h    06/10/85    AT model  239      6 MHz 30MB
  1339.  FCh    00h    > 01h      ???        7531/2 Industrial AT
  1340.  FCh    01h    00h    11/15/85    AT models 319,339 8 MHz, Enh Keyb, 3.5"
  1341.  FCh    01h    00h    09/17/87    Tandy 3000
  1342.  FCh    01h    00h    ../..x..    Toshiba laptops since ~1988
  1343.                     ("x"=product ID) (see #0394)
  1344.  FCh    01h    00h    03/08/93    Compaq DESKPRO/i
  1345.  FCh    01h    00h     various    Compaq DESKPRO, SystemPro, ProSignia
  1346.  FCh    01h    00h    07/20/93    Zenith Z-Lite 425L
  1347.  FCh    01h    00h    04/09/90    AMI BIOS
  1348.  FCh    01h    20h    06/10/92    AST
  1349.  FCh    01h    30h      ???        Tandy 3000NL
  1350.  FCh    01h    ???      ???        Compaq 286/386
  1351.  FCh    02h    00h    04/21/86    PC XT-286
  1352.  FCh    02h    00h     various    Compaq LTE Lite
  1353.  FCh    02h    00h    08/05/93    Compaq Contura 486/486c/486cx
  1354.  FCh    02h    00h    08/11/88    SoftWindows 1.0.1 (Power Macintosh)
  1355.  FCh    04h    00h    02/13/87     ** PS/2 Model 50 (10 MHz/1 ws 286)
  1356.  FCh    04h    01h    05/09/87    PS/2 Model 50 (10 Mhz 286, LW-type 32)
  1357.  FCh    04h    02h      ???        PS/2 Model 50
  1358.  FCh    04h    02h    01/28/88    PS/2 Model 50Z (10 Mhz 286, LW-type 33)
  1359.  FCh    04h    03h    04/18/88    PS/2 Model 50Z (10 MHz/0 ws 286)
  1360.  FCh    04h    04h      ???        PS/2 Model 50Z
  1361.  FCh    05h    00h    02/13/87     ** PS/2 Model 60 (10 MHz 286)
  1362.  FCh    06h    00h      ???        IBM 7552-140 "Gearbox"
  1363.  FCh    06h    01h      ???        IBM 7552-540 "Gearbox"
  1364.  FCh    08h    ***      ???        Epson, unknown model
  1365.  FCh    08h    00h      ???        PS/2 Model 25/286
  1366.  FCh    09h    00h      ???        PS/2 Model 25 (10 MHz 286)
  1367.  FCh    09h    00h    08/25/88    PS/2 Model 30 286 (10 Mhz, LW-type 37)
  1368.  FCh    09h    02h    06/28/89    PS/2 Model 30-286
  1369.  FCh    09h    02h    06/28/89    PS/2 Model 25 286 (10 Mhz, LW-type 37)
  1370.  FCh    0Bh    00h    12/01/89    PS/1 (LW-Type 44)
  1371.  FCh    0Bh    00h    02/16/90    PS/1 Model 2011 (10 MHz 286)
  1372.  FCh    20h    00h    02/18/93    Compaq ProLinea
  1373.  FCh    30h    ***      ???        Epson, unknown model
  1374.  FCh    31h    ***      ???        Epson, unknown model
  1375.  FCh    33h    ***      ???        Epson, unknown model
  1376.  FCh    42h    ***      ???        Olivetti M280
  1377.  FCh    45h    ***      ???        Olivetti M380 (XP 1, XP3, XP 5)
  1378.  FCh    48h    ***      ???        Olivetti M290
  1379.  FCh    4Fh    ***      ???        Olivetti M250
  1380.  FCh    50h    ***      ???        Olivetti M380 (XP 7)
  1381.  FCh    51h    ***      ???        Olivetti PCS286
  1382.  FCh    52h    ***      ???        Olivetti M300
  1383.  FCh    81h    00h    01/15/88    Phoenix 386 BIOS v1.10 10a
  1384.  FCh    81h    01h      ???        "OEM machine"
  1385.  FCh    82h    01h      ???        "OEM machine"
  1386.  FCh    94h    00h      ???        Zenith 386
  1387.  FBh    00h    01h    01/10/86    PC XT-089, Enh Keyb, 3.5" support
  1388.  FBh    00h    01h    05/13/94    HP 200LX 2MB BIOS 1.01 A D german
  1389.  FBh    00h    02h    05/09/86    PC XT
  1390.  FBh    00h    04h    08/19/93    HP 100LX 1MB BIOS 1.04 A
  1391.  FBh    4Ch    ***      ???        Olivetti M200
  1392.  FAh    00h    00h    09/02/86    PS/2 Model 30 (8 MHz 8086)
  1393.  FAh    00h    01h    12/12/86    PS/2 Model 30
  1394.  FAh    00h    02h    02/05/87    PS/2 Model 30
  1395.  FAh    01h    00h    06/26/87    PS/2 Model 25/25L (8 MHz 8086)
  1396.  FAh    30h    00h      ???        IBM Restaurant Terminal
  1397.  FAh    4Eh    ***      ???        Olivetti M111
  1398.  FAh    FEh    00h      ???        IBM PCradio 9075
  1399.  F9h    00h    00h    09/13/85    PC Convertible
  1400.  F9h    FFh    00h      ???        PC Convertible
  1401.  F8h    00h    00h    03/30/87     ** PS/2 Model 80 (16MHz 386)
  1402.  F8h    00h    00h      ???        PS/2 Model 75 486 (33Mhz 486)
  1403.  F8h    01h    00h    10/07/87    PS/2 Model 80 (20MHz 386)
  1404.  F8h    02h    00h      ???        PS/2 Model 55-5571
  1405.  F8h    04h    00h    01/29/88    PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
  1406.  F8h    04h    02h    04/11/88    PS/2 Model 70 20MHz, type 2 system brd
  1407.  F8h    04h    03h    03/17/89    PS/2 Model 70 20MHz, type 2 system brd
  1408.  F8h    05h    00h      ???        IBM PC 7568
  1409.  F8h    06h    00h      ???        PS/2 Model 55-5571
  1410.  F8h    07h    00h      ???        IBM PC 7561/2
  1411.  F8h    07h    01h      ???        PS/2 Model 55-5551
  1412.  F8h    07h    02h      ???        IBM PC 7561/2
  1413.  F8h    07h    03h      ???        PS/2 Model 55-5551
  1414.  F8h    09h    00h    01/29/88    PS/2 Model 70 16MHz 386DX, type 1 sysbd
  1415.  F8h    09h    02h    04/11/88    PS/2 Model 70 some models
  1416.  F8h    09h    03h    03/17/89    PS/2 Model 70 some models
  1417.  F8h    09h    04h    12/15/89    PS/2 Model 70 (16 Mhz 386, LW-type 33)
  1418.  F8h    0Bh    00h    01/18/89    PS/2 Model P70 (8573-121) typ 2 sys brd
  1419.  F8h    0Bh    02h    12/16/89    PS/2 Model P70 ??
  1420.  F8h    0Ch    00h    11/02/88    PS/2 Model 55SX (16 MHz 386SX)
  1421.  F8h    0Dh    00h      ???        PS/2 Model 70 25MHz, type 3 system brd
  1422.  F8h    0Dh    00h    06/08/88    PS/2 Model 70 386 25MHz, type 3 sys brd
  1423.  F8h    0Dh    01h    02/20/89    PS/2 Model 70 386 25MHz, type 3 sys brd
  1424.  F8h    0Dh    ???    12/01/89    PS/2 Model 70 486 25Mhz, type 3 sys brd
  1425.  F8h    0Eh    00h      ???        PS/1 486SX
  1426.  F8h    0Fh    00h      ???        PS/1 486DX
  1427.  F8h    10h    00h      ???        PS/2 Model 55-5551
  1428.  F8h    11h    00h    10/01/90    PS/2 Model 90 XP (25 MHz 486)
  1429.  F8h    12h    00h      ???        PS/2 Model 95 XP
  1430.  F8h    13h    00h    10/01/90    PS/2 Model 90 XP (33 MHz 486)
  1431.  F8h    14h    00h    10/01/90    PS/2 Model 90-AK9 (25 MHz 486), 95 XP
  1432.  F8h    15h    00h      ???        PS/2 Model 90 XP
  1433.  F8h    16h    00h    10/01/90    PS/2 Model 90-AKD / 95XP486 (33MHz 486)
  1434.  F8h    17h    00h      ???        PS/2 Model 90 XP
  1435.  F8h    19h    05h      ???        PS/2 Model 35/35LS or 40 (20 MHz 386SX)
  1436.  F8h    19h    05h    03/15/91    PS/2 Model 35 SX / 40 SX (LW-type 37)
  1437.  F8h    19h    06h    04/04/91    PS/2 Model 35 SX / 40 SX (LW-type 37)
  1438.  F8h    1Ah    00h      ???        PS/2 Model 95 XP
  1439.  F8h    1Bh    00h    09/29/89    PS/2 Model 70 486 (25 Mhz 386DX)
  1440.  F8h    1Bh    00h    10/02/89    PS/2 Model 70-486 (25 MHz 486)
  1441.  F8h    1Ch    00h    02/08/90    PS/2 Model 65-121 / 65 SX (16MHz 386SX)
  1442.  F8h    1Eh    00h    02/08/90    PS/2 Model 55LS (16 MHz 386SX)
  1443.  F8h    23h    00h      ???        PS/2 Model L40 SX
  1444.  F8h    23h    01h      ???        PS/2 Model L40 SX (20 MHz 386SX)
  1445.  F8h    23h    02h    02/27/91    PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
  1446.  F8h    25h    00h      ???        PS/2 Model 57 SLC
  1447.  F8h    25h    06h      ???        PS/2 Model M57 (20 MHz 386SLC)
  1448.  F8h    26h    00h      ???        PS/2 Model 57 SX
  1449.  F8h    26h    01h      ???        PS/2 Model 57 (20 MHz 386SX)
  1450.  F8h    26h    02h    07/03/91    PS/2 Model 57 SX (20Mhz 386SX, SCSI)
  1451.  F8h    28h    00h      ???        PS/2 Model 95 XP
  1452.  F8h    29h    00h      ???        PS/2 Model 90 XP
  1453.  F8h    2Ah    00h      ???        PS/2 Model 95 XP (50 MHz 486)
  1454.  F8h    2Bh    00h      ???        PS/2 Model 90 / 90XP486 (50 MHz 486)
  1455.  F8h    2Ch    00h      ???        PS/2 Model 95 XP
  1456.  F8h    2Ch    01h      ???        PS/2 Model 95 (20 MHz 486SX)
  1457.  F8h    2Dh    00h      ???        PS/2 Model 90 XP (20 MHz 486SX)
  1458.  F8h    2Eh    00h      ???        PS/2 Model 95 XP
  1459.  F8h    2Eh    00h      ???        PS/2 Model 95 XP486 (20 Mhz 486SX)
  1460.  F8h    2Eh    01h      ???        PS/2 Model 95 (20 MHz 486SX + 487SX)
  1461.  F8h    2Fh    00h      ???        PS/2 Model 90 XP (20 MHz 486SX + 487SX)
  1462.  F8h    30h    00h      ???        PS/1 Model 2121 (16 MHz 386SX)
  1463.  F8h    33h    00h      ???        PS/2 Model 30-386
  1464.  F8h    34h    00h      ???        PS/2 Model 25-386
  1465.  F8h    36h    00h      ???        PS/2 Model 95 XP
  1466.  F8h    37h    00h      ???        PS/2 Model 90 XP
  1467.  F8h    38h    00h      ???        PS/2 Model 57
  1468.  F8h    39h    00h      ???        PS/2 Model 95 XP
  1469.  F8h    3Fh    00h      ???        PS/2 Model 90 XP
  1470.  F8h    40h    00h      ???        PS/2 Model 95 XP
  1471.  F8h    41h    00h      ???        PS/2 Model 77
  1472.  F8h    45h    00h      ???        PS/2 Model 90 XP (Pentium)
  1473.  F8h    46h    00h      ???        PS/2 Model 95 XP (Pentium)
  1474.  F8h    47h    00h      ???        PS/2 Model 90/95 E (Pentium)
  1475.  F8h    48h    00h      ???        PS/2 Model 85
  1476.  F8h    49h    00h      ???        PS/ValuePoint 325T
  1477.  F8h    4Ah    00h      ???        PS/ValuePoint 425SX
  1478.  F8h    4Bh    00h      ???        PS/ValuePoint 433DX
  1479.  F8h    4Eh    00h      ???        PS/2 Model 295
  1480.  F8h    50h    00h      ???        PS/2 Model P70 (8573) (16 MHz 386)
  1481.  F8h    50h    01h    12/16/89    PS/2 Model P70 (8570-031)
  1482.  F8h    52h    00h      ???        PS/2 Model P75 (33 MHz 486)
  1483.  F8h    56h    00h      ???        PS/2 Model CL57 SX
  1484.  F8h    57h    00h      ???        PS/2 Model 90 XP
  1485.  F8h    58h    00h      ???        PS/2 Model 95 XP
  1486.  F8h    59h    00h      ???        PS/2 Model 90 XP
  1487.  F8h    5Ah    00h      ???        PS/2 Model 95 XP
  1488.  F8h    5Bh    00h      ???        PS/2 Model 90 XP
  1489.  F8h    5Ch    00h      ???        PS/2 Model 95 XP
  1490.  F8h    5Dh    00h      ???        PS/2 Model N51 SLC
  1491.  F8h    5Eh    00h      ???        IBM ThinkPad 700
  1492.  F8h    61h    ***      ???        Olivetti P500
  1493.  F8h    62h    ***      ???        Olivetti P800
  1494.  F8h    80h    00h      ???        PS/2 Model 80 (25 MHz 386)
  1495.  F8h    80h    01h    11/21/89    PS/2 Model 80-A21 (25 Mhz 386)
  1496.  F8h    81h    00h      ???        PS/2 Model 55-5502
  1497.  F8h    87h    00h      ???        PS/2 Model N33SX
  1498.  F8h    88h    00h      ???        PS/2 Model 55-5530T
  1499.  F8h    97h    00h      ???        PS/2 Model 55 Note N23SX
  1500.  F8h    99h    00h      ???        PS/2 Model N51 SX
  1501.  F8h    F2h    30h      ???        Reply Model 32
  1502.  F8h    F6h    30h      ???        Memorex Telex
  1503.  F8h    FDh    00h      ???        IBM Processor Complex (with VPD)
  1504.  F8h    ???    ???      ???        PS/2 Model 90 (25 MHz 486SX)
  1505.  F8h    ???    ???      ???        PS/2 Model 95 (25 MHz 486SX)
  1506.  F8h    ???    ???      ???        PS/2 Model 90 (25 MHz 486SX + 487SX)
  1507.  F8h    ???    ???      ???        PS/2 Model 95 (25 MHz 486SX + 487SX)
  1508.  E1h    ???    ???      ???        ??? (checked for by DOS4GW.EXE)
  1509.  E1h    00h    00h      ???        PS/2 Model 55-5530 Laptop
  1510.  9Ah    *    *      ???        Compaq XT/Compaq Plus
  1511.  30h    ???    ???      ???        Sperry PC
  1512.  2Dh    *    *      ???        Compaq PC/Compaq Deskpro
  1513.  ???    56h    ???      ???        Olivetti, unknown model
  1514.  ???    74h    ???      ???        Olivetti, unknown model
  1515. Notes:
  1516.     * This BIOS call is not implemented in these early versions.
  1517.       Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h.
  1518.    ** These BIOS versions require the DASDDRVR.SYS patches.
  1519.   *** These Olivetti and Epson machines store the submodel in the byte at
  1520.     F000h:FFFDh.
  1521. SeeAlso: #0383,#0389
  1522.  
  1523. (Table 0389)
  1524. Values for Dell model byte:
  1525.  02h    Dell 200
  1526.  03h    Dell 300
  1527.  05h    Dell 220
  1528.  06h    Dell 310
  1529.  07h    Dell 325
  1530.  09h    Dell 310A
  1531.  0Ah    Dell 316
  1532.  0Bh    Dell 220E
  1533.  0Ch    Dell 210
  1534.  0Dh    Dell 316SX
  1535.  0Eh    Dell 316LT
  1536.  0Fh    Dell 320LX
  1537.  11h    Dell 425E
  1538. SeeAlso: #0383,#0388
  1539.  
  1540. Format of Compaq product information:
  1541. Address        Size    Description    (Table 0390)
  1542.  F000h:FFE4h    BYTE    product family code (first byte)
  1543.  F000h:FFE4h    BYTE    Point release number
  1544.  F000h:FFE4h    BYTE    ROM version code
  1545.  F000h:FFE4h    BYTE    product family code (second byte)
  1546.  F000h:FFE8h    WORD    BIOS type code
  1547. SeeAlso: #0391,#0393
  1548.  
  1549. Format of Hewlett-Packard ROM ID at F000h:00F8h:
  1550. Offset    Size    Description    (Table 0391)
  1551.  00h  2 BYTEs    signature "HP" (48h 50h)
  1552.  02h  2 BYTEs    00h 00h
  1553.  04h    BYTE    secondary code revision
  1554.  05h    BYTE    primary code revision
  1555.  06h    BYTE    date code, year-1960 (BCD)
  1556.  07h    BYTE    date code, week of year (BCD)
  1557. SeeAlso: #0390,#0392
  1558.  
  1559. Bitfields for Hewlett-Packard product identifier:
  1560. Bit(s)    Description    (Table 0392)
  1561.  4-0    machine code
  1562.     0 original Vectra
  1563.     1 ES/12
  1564.     2 RS/20
  1565.     3 Portable/CS
  1566.     4 ES
  1567.     5 CS
  1568.     6 RS/16
  1569.     other reserved
  1570.  7-5    CPU type
  1571.     0 = 80286
  1572.     1 = 8088
  1573.     2 = 8086
  1574.     3 = 80386
  1575.     other reserved
  1576. SeeAlso: #0391
  1577.  
  1578. Format of Toshiba laptop information:
  1579. Offset    Size    Description    (Table 0393)
  1580.  00h  8 BYTEs    ASCII product number (e.g. "T2200SX ")
  1581.  08h  8 BYTEs    ASCII version number (e.g. "V1.20   ")
  1582.  10h  8 BYTEs    ASCII signature string "TOSHIBA "
  1583.  18h  8 BYTEs    always zero???
  1584.  20h    DWORD    -> built-in BIOS setup program entry point or 0000h:0000h
  1585. Note:    this record is located at F000h:E000h
  1586. SeeAlso: #0390,#0391
  1587.  
  1588. (Table 0394)
  1589. Values for Toshiba product ID:
  1590. model prodID   version      date        product number      /hdd
  1591.  FEh    29h        ../..)..   Toshiba T1000LE
  1592.  FEh    2Ah        ../..*..   Toshiba T1000XE
  1593.  FEh    2Bh        ../..+..   Toshiba T1000SE
  1594.  FEh    2Ch        ../..,..   Toshiba T1000      -
  1595.  FEh    2Dh        ../..-..   Toshiba T1200F     -
  1596.  FEh    2Dh    V4.00    12/26-87   Toshiba T1200H    /20
  1597.  FEh    2Eh        ../.....   Toshiba T1100+
  1598.  FCh    22h        ../.."..   Toshiba T8500
  1599.  FCh    26h        01/15&88   Toshiba T5200     /100
  1600.  FCh    27h        ../..'..   Toshiba T5100
  1601.  FCh    28h        ../..(..   Toshiba T2000
  1602.  FCh    2Ah        12/26*89   Toshiba T1200XE
  1603.  FCh    2Bh        ../..+..   Toshiba T1600
  1604.  FCh    2Ch        ../..,..   Toshiba T3100e
  1605.  FCh    2Dh        ../..-..   Toshiba T3200
  1606.  FCh    2Fh        ../../..   Toshiba T3100
  1607.  FCh    34h        ../..4..   Toshiba T100X
  1608.  FCh    38h        ../..8..   Toshiba T2000SXe
  1609.  FCh    39h    V1.20    09/16991   Toshiba T2200SX   /60
  1610.  FCh    39h    V1.40    10/01992   Toshiba T2200SX   /120 (upgraded)
  1611.  FCh    3Ch    V1.50    01/28<91   Toshiba T2000SX   /40
  1612.  FCh    3Dh        ../..=..   Toshiba T3200SXC
  1613.  FCh    3Eh        ../..>..   Toshiba T3100SX
  1614.  FCh    3Fh        ../..?..   Toshiba T3200SX
  1615.  FCh    40h        ../..@..   Toshiba T4500C
  1616.  FCh    41h        04/05A92   Toshiba T4500     ("T4500SXC" ?)
  1617.  FCh    45h    V3.20    04/14E92   Toshiba T4400SX   ("C" or "SXC" on cover)
  1618.  FCh    45h        01/13E93   Toshiba T4400SXC
  1619.  FCh    46h *        ../..F..   Toshiba T6400
  1620.  FCh    46h *        ../..F..   Toshiba T6400C
  1621.  FCh    5Fh        ../.._..   Toshiba T3300SL
  1622.  FCh    69h        ../..i..   Toshiba T1900C
  1623.  FCh    6Ah        ../..j..   Toshiba T1900
  1624.  FCh    6Dh        ../..m..   Toshiba T1850C
  1625.  FCh    6Eh    V1.00    08/19n92   Toshiba T1850
  1626.  FCh    6Eh        12/25n92   Toshiba T1850
  1627.  FCh    6Fh        07/17o92   Toshiba T1800
  1628.  FCh    7Eh    V1.30    06/17~93   Toshiba T4600C
  1629.  FCh    7Fh        ../..x..   Toshiba T4600
  1630.  FCh    8Ah        ../..x..   Toshiba T6600C
  1631.  FCh    91h        ../..x..   Toshiba T2400CS
  1632.  FCh    91h    V1.20    07/15x94   Toshiba T2400CT
  1633.  FCh    92h        ../..x..   Toshiba T3600CT
  1634.  FCh    96h *        ../..x..   Toshiba T200
  1635.  FCh    96h *        ../..x..   Toshiba T200CS
  1636.  FCh    97h        ../..x..   Toshiba T4800CT
  1637.  FCh    98h *    V1.10    12/22x93   Toshiba T1910     /120 /320
  1638.  FCh    98h *        ../..x..   Toshiba T1910CS
  1639.  FCh    99h        ../..x..   Toshiba T4700CS
  1640.  FCh    9Bh    V2.30    01/31x94   Toshiba T4700CT
  1641.  FCh    9Bh    V2.50    03/22x94   Toshiba T4700CT   /320
  1642.  FCh    9Ch    V1.30    01/11x94   Toshiba T1950CT   /320
  1643.  FCh    9Dh *        ../..x..   Toshiba T1950
  1644.  FCh    9Dh *        ../..x..   Toshiba T1950CS
  1645.  FCh    9Eh *    V1.20    12/25x93   Toshiba T3400     /120
  1646.  FCh    9Eh *    V1.30    03/22x94   Toshiba T3400     /250
  1647.  FCh    9Eh *        ../..x..   Toshiba T3400CT
  1648.  FCh    ???        ../.. ..   Toshiba T1900S
  1649.  FCh    ???        ../.. ..   Toshiba T1900CT
  1650. Note:    BIOS version numbers and dates may vary, esp. due to harddisk and
  1651.       flash BIOS upgrades
  1652.     the 8-bit ASCII graphics character in the "date" column above
  1653.       has been substituted by "x" because it depends on code page
  1654.     [*] These models have monochrome and color versions which can only be
  1655.       distinguished with INT 42/AX=7503h
  1656. SeeAlso: #0388
  1657. --------B-15C1-------------------------------
  1658. INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
  1659.     AH = C1h
  1660. Return: CF set on error
  1661.     CF clear if successful
  1662.         ES = segment of data area
  1663. SeeAlso: AH=04h"ABIOS"
  1664. --------M-15C200-----------------------------
  1665. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
  1666.     AX = C200h
  1667.     BH = new state
  1668.         00h disabled
  1669.         01h enabled
  1670. Return: CF set on error
  1671.     AH = status (see #0395)
  1672.  
  1673. (Table 0395)
  1674. Values for pointing device function status:
  1675.  00h    successful
  1676.  01h    invalid function
  1677.  02h    invalid input
  1678.  03h    interface error
  1679.  04h    need to resend
  1680.  05h    no device handler installed
  1681. --------M-15C201-----------------------------
  1682. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
  1683.     AX = C201h
  1684. Return: CF set on error
  1685.         AH = status (see #0395)
  1686.     CF clear if successful
  1687.         BH = device ID
  1688.         BL = value returned by attached device after reset
  1689.         AAh if device is a mouse
  1690. Note:    after successful completion of this call, the pointing device is set
  1691.       as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
  1692.       scaling 1:1, unchanged data package size
  1693. SeeAlso: INT 33/AX=0000h
  1694. --------M-15C202-----------------------------
  1695. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
  1696.     AX = C202h
  1697.     BH = sampling rate
  1698.         00h 10/second
  1699.         01h 20/second
  1700.         02h 40/second
  1701.         03h 60/second
  1702.         04h 80/second
  1703.         05h 100/second
  1704.         06h 200/second
  1705. Return: CF set on error
  1706.         AH = status (see #0395)
  1707. SeeAlso: INT 33/AX=001Ch
  1708. --------M-15C203-----------------------------
  1709. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
  1710.     AX = C203h
  1711.     BH = resolution (see #0396)
  1712. Return: CF set on error
  1713.         AH = status (see #0395)
  1714.  
  1715. (Table 0396)
  1716. Values for pointing device resolution:
  1717.  00h    one count per mm
  1718.  01h    two counts per mm
  1719.  02h    four counts per mm
  1720.  03h    eight counts per mm
  1721. --------M-15C204-----------------------------
  1722. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
  1723.     AX = C204h
  1724. Return: CF set on error
  1725.         AH = status (see #0395)
  1726.     CF clear if successful
  1727.         BH = device ID
  1728. --------M-15C205-----------------------------
  1729. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
  1730.     AX = C205h
  1731.     BH = data package size (1 - 8 bytes)
  1732. Return: CF set on error
  1733.         AH = status (see #0395)
  1734. Note:    the pointing device is set as follows: disabled, 100 Hz sample rate,
  1735.       resolution 4 counts/mm, scaling 1:1
  1736. SeeAlso: AX=C201h
  1737. --------M-15C206-----------------------------
  1738. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
  1739.     AX = C206h
  1740.     BH = subfunction
  1741.         00h return device status
  1742.         Return: BL = pointing device status (see #0397)
  1743.             CL = resolution (see #0396)
  1744.             DL = sample rate, reports per second
  1745.         01h set scaling at 1:1
  1746.         02h set scaling at 2:1
  1747. Return: CF set on error
  1748.         AH = status (see #0395)
  1749.  
  1750. Bitfields for pointing device status:
  1751. Bit(s)    Description    (Table 0397)
  1752.  0    right button pressed
  1753.  1    reserved
  1754.  2    left button pressed
  1755.  3    reserved
  1756.  4    0 if 1:1 scaling, 1 if 2:1 scaling
  1757.  5    device enabled
  1758.  6    0 if stream mode, 1 if remote mode
  1759.  7    reserved
  1760. --------M-15C207-----------------------------
  1761. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
  1762.     AX = C207h
  1763.     ES:BX -> FAR user device handler or 0000h:0000h to cancel
  1764. Return: CF set on error
  1765.         AH = status (see #0395)
  1766. Note:    when the subroutine is called, it is passed the following values on
  1767.       the stack; the handler should return with a FAR return without
  1768.       popping the stack:
  1769.         WORD 1: status (see #0398)
  1770.         WORD 2: X data (high byte = 00h)
  1771.         WORD 3: Y data (high byte = 00h)
  1772.         WORD 4: 0000h
  1773. SeeAlso: INT 33/AX=000Ch
  1774.  
  1775. Bitfields for pointing device status:
  1776. Bit(s)    Description    (Table 0398)
  1777.  15-8    reserved (0)
  1778.  7    Y data overflowed
  1779.  6    X data overflowed
  1780.  5    Y data is negative
  1781.  4    X data is negative
  1782.  3    reserved (1)
  1783.  2    reserved (0)
  1784.  1    right button pressed
  1785.  0    left button pressed
  1786. --------B-15C3------------------------------
  1787. INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
  1788.     AH = C3h
  1789.     AL = function
  1790.         00h disable PS/2 watchdog timer
  1791.         01h enable PS/2 watchdog timer
  1792.         BX = timer counter (0001h-00FFh)
  1793.         02h disable Gearbox system
  1794.         03h enable Gearbox system
  1795. Return: CF set on error
  1796.     CF clear if successful
  1797. Note:    the watchdog timer generates an NMI
  1798. SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
  1799. --------B-15C4-------------------------------
  1800. INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
  1801.     AH = C4h
  1802.     AL = subfunction
  1803.         00h return base POS register address
  1804.         01h enable selected slot for setup
  1805.         BL = slot number (1 to 8)
  1806.         02h disable setup for all slots (enable adapter)
  1807. Return: CF set on error
  1808.     DX = base POS register address (if subfunction 00h)
  1809. SeeAlso: AH=C6h
  1810. --------B-15C5-------------------------------
  1811. INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
  1812.     AH = C5h
  1813.     AL = interrupt being invoked
  1814.         01h INT 19
  1815.         02h INT 14
  1816.         03h INT 16
  1817.         04h INT 40 (floppy INT 13)
  1818.         05h INT 17
  1819.         06h INT 10
  1820.         07h INT 12
  1821.         08h INT 11
  1822.         09h INT 1A
  1823. Return: all registers except AX must be preserved
  1824. Notes:    called as the very first action of the indicated ROM BIOS interrupt
  1825.       handlers on the PS/2 Models 30/286, 50Z, and 95
  1826.     default handler does nothing and returns CF clear for the above
  1827.       subfunctions, CF set and AH=86h for all other subfunctions
  1828.     value of AX passed to the original interrupt handler is pushed on
  1829.       stack immediately prior to call
  1830. --------B-15C6-------------------------------
  1831. INT 15 U - later PS/2 models - GET POS DATA
  1832.     AH = C6h
  1833.     ???
  1834. Return: ???
  1835. Notes:    this function is referenced by name and number in some IBM BIOS manuals
  1836.     IBM reports that "there are a number of problems with this call" and
  1837.       does not recommend its use.
  1838. SeeAlso: AH=C4h
  1839. --------B-15C7-------------------------------
  1840. INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
  1841.     AH = C7h
  1842.     DS:SI -> user supplied memory map table (see #0399)
  1843. Note:    call AH=C0h and examine bit 4 of feature byte 2 to check if this
  1844.       function is supported
  1845. Return: CF set on error, clear if successful
  1846. SeeAlso: AH=C0h,AH=C9h,AH=D1h
  1847.  
  1848. Format of memory-map table structure:
  1849. Offset    Size    Description    (Table 0399)
  1850.  00h    WORD    length of table (excluding this word)
  1851.  02h    DWORD    local memory between 1M and 16M, in 1K blocks
  1852.  06h    DWORD    local memory between 16M and 4G, in 1K blocks
  1853.  0Ah    DWORD    system memory between 1M and 16M, in 1K blocks
  1854.  0Eh    DWORD    system memory between 16M and 4G, in 1K blocks
  1855.  12h    DWORD    cacheable memory between 1M and 16M, in 1K blocks
  1856.  16h    DWORD    cacheable memory between 16M and 4G, in 1K blocks
  1857.  1Ah    DWORD    1K blocks before start of non-system memory between 1M and 16M
  1858.  1Eh    DWORD    1K blocks before start of non-system memory between 16M and 4G
  1859.  22h  2 DWORDs    reserved
  1860. --------B-15C8-------------------------------
  1861. INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
  1862.     AH = C8h
  1863.     AL = function
  1864.         00h disable cache or (90 and 95) disable cache L1
  1865.         01h enable cache or (90 and 95) enable cache L1
  1866.         ---models 90 and 95 only---
  1867.         02h disable cache L2
  1868.         03h enable cache L2
  1869.         04h disable both caches
  1870.         05h enable both caches
  1871.         06h return status of both caches
  1872.         07h-FFh Reserved
  1873. Return: CF set on error
  1874.     CF clear if successful
  1875.         AH = status (see #0400)
  1876.     For subfunction 06h only:
  1877.         BH = status of cache L2
  1878.         00h enabled
  1879.         01h disabled or not installed
  1880.         BL = status of cache L1 (same codes as BH)
  1881. Notes:     supported by at least PS/2 70, 70/486, 80-A21, 90, 95
  1882.     call AH=C0h and examine bit 3 of feature byte 2 to check if this
  1883.       function is supported.
  1884.     on a 486 system, any external caches must be disabled when the
  1885.       on-chip cache (L1) is disabled.
  1886. SeeAlso: AH=C0h
  1887.  
  1888. (Table 0400)
  1889. Values for status:
  1890.  00h    operation successful
  1891.  01h    function choice (in AL) is invalid
  1892.  02h    NVRAM data is invalid
  1893.  03h    cache test error
  1894.  04h    (90 and 95 only) cannot perform operation requested due to state of
  1895.       other cache (see note above)
  1896.  05h    no L2 cache is present
  1897.  09h    CPU in protected mode
  1898. --------B-15C9-------------------------------
  1899. INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
  1900.     AH = C9h
  1901.     AL = 10h (may be required on some non-PS BIOSes)
  1902. Return: CF clear if successful
  1903.         AH = 00h
  1904.         CH = CPU type (see #0401)
  1905.         CL = mask revision (stepping level) (see #0402)
  1906.     CF set on error
  1907.         AH = status (80h,86h = function not supported)
  1908. Notes:    the BIOS must save DX at startup in order to be able to support this
  1909.       call; PS/2 Models 56, 57, 90, and 95 are known to support it
  1910.     the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
  1911.  
  1912. (Table 0401)
  1913. Values for CPU type:
  1914.  03h    80386DX or clone
  1915.  04h    80486
  1916.  05h    Pentium
  1917.  23h    80386SX or clone
  1918.  33h    Intel i376
  1919.  43h    80386SL or clone
  1920.  A3h    IBM 386SLC
  1921.  A4h    IBM 486SLC
  1922.  
  1923. (Table 0402)
  1924. Values for stepping level:
  1925. ---i376 (type code 33h)---
  1926.  05h    A0
  1927.  08h    B
  1928. ---80386/80386DX (type code 03h)---
  1929.  03h    Intel B1 to B10, Am386DX/DXL step A
  1930.  05h    Intel D0
  1931.  08h    Intel D1/D2/E1, Am386DX/DXL step B
  1932. ---80386SL (type code 43h)---
  1933.  05h    A
  1934.  1xh    B
  1935. ---80386SX (type code 23h)---
  1936.  04h    Intel A0
  1937.  05h    Intel B, Am386SX/SXL step A1
  1938.  08h    Intel C/D1, Am386SX/SXL step B
  1939.  09h    Intel 386CX/386EX/386SXstatic step A
  1940. ---80486DX (type code 04h)---
  1941.  00h    Intel A0/A1
  1942.  01h    Intel B2 to B6
  1943.  02h    Intel C0
  1944.  03h    Intel C1
  1945.  04h    Intel D0
  1946.  10h    Intel cA2/cA3, Cx486SLC step A
  1947.  11h    Intel cB0/cB1
  1948. ---486DX2 (type code 04h)---
  1949.  02h    Am486DX2 (unknown stepping)
  1950.  32h    Intel DX2/Overdrive steps A0 to A2
  1951.  33h    Intel DX2/Overdrive step B1
  1952. ---486SX (type code 04h)---
  1953.  20h    Intel A0
  1954.  22h    Intel B0
  1955.  27h    Intel cA0
  1956.  28h    Intel cB0
  1957. ---486SL (type code 04h)---
  1958.  40h    Intel A
  1959. ---IntelSX2 (type code 04h)---
  1960.  5xh    Intel A
  1961. ---IntelDX4 (type code 04h)---
  1962.  8xh    Intel A
  1963. ---487SX (type code 04h)---
  1964.  20h    Intel A0
  1965.  21h    Intel B0
  1966. ---Pentium (type code 05h)---
  1967.  0xh    Intel P5 steps Ax (1993)
  1968.  1xh    Intel P5 steps Bx (1994)
  1969.  2xh    Intel P54C step A
  1970. ---RapidCAD (type code 03h)---
  1971.  40h    A
  1972. --------B-15CA-------------------------------
  1973. INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
  1974.     AH = CAh
  1975.     AL = function
  1976.         00h read CMOS
  1977.         Return: CL = value of CMOS location
  1978.         01h write CMOS
  1979.         CL = new value for CMOS location
  1980.     BL = CMOS location (0Eh-3Fh)
  1981. Return: CF clear if successful
  1982.         AH = 00h
  1983.     CF set on error
  1984.         AH = error code (see #0403)
  1985. Note:    writes do not update the CMOS checksum
  1986.  
  1987. (Table 0403)
  1988. Values for CMOS read/write error code:
  1989.  01h    CMOS lost power or has invalid checksum
  1990.  03h    specified location out of range (too high)
  1991.  04h    specified location out of range (too low)
  1992.  80h    unsupported function (PC)
  1993.  86h    unsupported function (XT)
  1994. --------B-15CB-------------------------------
  1995. INT 15 U - PS/2 Model 95 - RESERVED
  1996.     AH = CBh
  1997.     ???
  1998. Return: ???
  1999. --------B-15CC-------------------------------
  2000. INT 15 U - PS/2 Model 95 - RESERVED
  2001.     AH = CCh
  2002.     ???
  2003. Return: ???
  2004. --------V-15CCCC-----------------------------
  2005. INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
  2006.     AX = CCCCh
  2007. Return: AX = ABCDh if installed
  2008. Note:    supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
  2009.       older versions have the string "VCHAD" 2 bytes after the address of
  2010.       the INT 15 handler which is hooked by all versions for the SysReq key
  2011. SeeAlso: AH=85h
  2012. --------B-15CD-------------------------------
  2013. INT 15 U - PS/2 Model 95 - RESERVED
  2014.     AH = CDh
  2015.     ???
  2016. Return: ???
  2017. --------B-15CE--BL00-------------------------
  2018. INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
  2019.     AH = CEh
  2020.     BL = 00h-0Eh arbitration level to be allocated
  2021.          0Fh-FFh reserved
  2022.     AL = option byte
  2023.         bit 7-1: reserved (0)
  2024.         bit 0: 0 = need DMA channel for arbitration level requested
  2025.            1 = no channel required for arbitration level
  2026. Return: CF set on error
  2027.         AH = status (80h,86h = function not supported)
  2028.     CF clear on success
  2029.         AL = channel number
  2030.         00h-07h channel number allocated for the arbiration level
  2031.         08h-FEh reserved
  2032.         FFh    no channel requested for arbitration level
  2033.         AH = status (see #0404)
  2034. Notes:     arbitration level 00h has the highest priority, 0Eh the lowest
  2035.      to perform a DMA transfer operation, be sure to call this function
  2036.        first, and call AH=CFh afterward.  Failure to use this function
  2037.        can cause unpredictable results.
  2038. SeeAlso: AH=CFh
  2039.  
  2040. (Table 0404)
  2041. Values for DMA arbitration status:
  2042.  00h    success
  2043.  01h    arbitration level not available
  2044.  02h    channel not available
  2045.  03h    invalid arbitration level passed
  2046. --------B-15CF-------------------------------
  2047. INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
  2048.     AH = CFh
  2049.     BL = arbitration level to be deallocated (see AH=CEh)
  2050. Return: CF set on error
  2051.         AH = status (80h,86h = function not supported)
  2052.     CF clear on success
  2053.         AH = status
  2054.         00h success
  2055.         04h arbitration level not allocated
  2056. SeeAlso: AH=CEh
  2057. --------B-15D0-------------------------------
  2058. INT 15 - later PS/2s - RESERVED
  2059.     AH = D0h
  2060.     ???
  2061. Return: ???
  2062. --------B-15D100DX0000-----------------------
  2063. INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
  2064.     AX = D100h
  2065.     DX = 0000h (reserved, must set to 0)
  2066. Return: BL = size of one DDT entry, in bytes
  2067.     CX = number of DDT entries
  2068.     AH = return code (see #0405)
  2069.     CF set on error
  2070.     CF clear on success
  2071. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
  2072.  
  2073. (Table 0405)
  2074. Values for return code:
  2075.  00h    success
  2076.  01h    requested DDT entry not found
  2077.  02h    DDT data not valid
  2078.  86h    function not supported
  2079. --------B-15D101-----------------------------
  2080. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
  2081.     AX = D101h
  2082.     BX = number of requested entry (starting with 1)
  2083.     DX = 0000h (reserved, must be set to 0)
  2084.     ES:DI -> buffer to contain DDT entry (see #0406)
  2085. Return:    AH = return code (see #0405)
  2086.     CF set on error
  2087.     CF clear on success
  2088.         ES:DI buffer filled with DDT entry
  2089. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
  2090.  
  2091. Format of Device Descriptor Table (DDT):
  2092. Offset    Size    Description    (Table 0406)
  2093.  00h    BYTE    bits 7-4: reserved (set to 0)
  2094.         bits 3-0: slot of device (0 = system board)
  2095.  01h    BYTE    bits 7-4: second interrupt for this device (0 = none)
  2096.         bits 3-0: first interrupt for this device (0 = none)
  2097.  02h    BYTE    bits 7-4: second arbitration level for this device
  2098.         bits 3-0: first arbitration level for this device
  2099.  03h    WORD    DDT indicators (see #0407)
  2100.  05h    BYTE    reserved (0)
  2101.  06h    WORD    device ID (0 = none)
  2102.  08h    WORD    starting address of first  I/O block (0 = none)
  2103.  0Ah    WORD    starting address of second I/O block (0 = none)
  2104.  OCh    WORD    starting address of third  I/O block (0 = none)
  2105.  OEh    DWORD    start of first non-system memory block (0 = none)
  2106.  12h    WORD    size of first non-system memory block (in kilobytes)
  2107.  14h    DWORD    start of second non-system memory block (0 = none)
  2108.  18h    WORD    size of second non-system memory block (in kilobytes)
  2109.  1Ah    BYTE    implementation identifier of the device
  2110.  1Bh    BYTE    implementation revision level of the device
  2111. Note:    I/O block addresses and non-system memory addresses are listed in
  2112.       ascending order in each DDT entry.
  2113.  
  2114. Bitfields for DDT indicators:
  2115. Bit(s)    Description    (Table 0407)
  2116.  15    reserved (0)
  2117.  14    second arbitration level exists
  2118.  13    first arbitration level exists
  2119.  12    serial interface is RS-422
  2120.  11    not address limited
  2121.  10    DMA channel used
  2122.  9    second arbitration level can be shared
  2123.  8    first arbitration level can be shared
  2124.  7-0    reserved (0)
  2125. --------B-15D102-----------------------------
  2126. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
  2127.     AX = D102h
  2128.     BX = entry number at which to start searching
  2129.     CX = requested I/O port address
  2130.     DX = 0000h (reserved, must be set to 0)
  2131.     ES:DI -> buffer to contain DDT entry (see #0406)
  2132. Return:    AH = return code (see #0405)
  2133.     BX = DDT entry number where I/O port was found, or total entries
  2134.          plus 1 if port was not found.
  2135.     CF set on error
  2136.     CF clear on success
  2137.         ES:DI buffer filled with DDT entry
  2138. Desc:    the DDT is searched from the specified entry for the I/O port in CX,
  2139.       and the first entry in which it is found is returned
  2140. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
  2141. --------B-15D103DX0000-----------------------
  2142. INT 15 - later PS/2s - RETURN ENTIRE DDT
  2143.     AX = D103h
  2144.     DX = 0000h (reserved, must be set to 0)
  2145.     ES:DI -> buffer to contain DDT entry (see #0406)
  2146. Return:    AH = return code (see #0405)
  2147.     CF set on error
  2148.     CF clear on success
  2149.         ES:DI buffer filled with DDT entry
  2150. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
  2151. --------B-15D104-----------------------------
  2152. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
  2153.     AX = D104h
  2154.     BX = entry number at which to start searching
  2155.     CX = requested device ID
  2156.     DX = 0000h (reserved, must be set to 0)
  2157.     ES:DI -> buffer to contain DDT entry (see #0406)
  2158. Return:    AH = return code (see #0405)
  2159.     BX = DDT entry number where device ID was found, or total entries
  2160.           plus 1 if port was not found.
  2161.     CF set on error
  2162.     CF clear on success
  2163.         ES:DI buffer filled with DDT entry
  2164. Desc:    the DDT is searched from the specified entry for the device ID in CX,
  2165.       and the first entry in which it is found is returned.
  2166. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
  2167. --------B-15D2-------------------------------
  2168. INT 15 - later PS/2s - RESERVED
  2169.     AH = D2h
  2170.     ???
  2171. Return: ???
  2172. --------B-15D3-------------------------------
  2173. INT 15 - later PS/2s - RESERVED
  2174.     AH = D3h
  2175.     ???
  2176. Return: ???
  2177. --------B-15D4-------------------------------
  2178. INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
  2179.     AH = D4h
  2180.     DL = logical fixed disk drive number
  2181. Return:    AH = return code (see #0408)
  2182.     CF set on error
  2183.     CF clear on success
  2184.         AL = physical fixed disk drive number
  2185.  
  2186. (Table 0408)
  2187. Values for return code:
  2188.  00h    success
  2189.  01h    specified logical drive number is invalid
  2190.  80h    function not supported (on PCjr and PC)
  2191.  86h    function not supported
  2192. --------B-15D5-------------------------------
  2193. INT 15 - later PS/2s - RESERVED
  2194.     AH = D5h
  2195.     ???
  2196. Return: ???
  2197. --------B-15D600BL00-------------------------
  2198. INT 15 - later PS/2s - READ BOOT DEVICE ID
  2199.     AX = D600h
  2200.     BL = 00h
  2201.     DX = device ID
  2202. Return: CF clear if successful
  2203.         AH = 00h
  2204.     CF set on error
  2205.         AH = status (86h for function not supported)
  2206. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
  2207. --------B-15D600BL01-------------------------
  2208. INT 15 - later PS/2s - WRITE BOOT DEVICE ID
  2209.     AX = D600h
  2210.     BL = 01h
  2211.     DX = device ID
  2212. Return: CF clear on success
  2213.         AH = 00h
  2214.     CF set on error
  2215.         AH = status (86h for function not supported)
  2216. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
  2217. --------B-15D601BL00-------------------------
  2218. INT 15 - later PS/2s - READ BOOT DEVICE KEY
  2219.     AX = D601h
  2220.     BL = 00h
  2221.     DX = device ID
  2222. Return: CF clear on success
  2223.         AH = 00h
  2224.     CF set on error
  2225.         AH = status (86h for function not supported)
  2226. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
  2227. --------B-15D601BL01-------------------------
  2228. INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
  2229.     AX = D601h
  2230.     BL = 01h
  2231.     DX = device ID
  2232. Return: CF clear on success
  2233.         AH = 00h
  2234.     CF set on error
  2235.         AH = status (86h for function not supported)
  2236. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
  2237. --------B-15D602-----------------------------
  2238. INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
  2239.     AX = D602h
  2240. Return: CF clear on success
  2241.         AH = 00h
  2242.         AL = status of reference-partition boot request
  2243.         00h boot not requested
  2244.         01h boot requested
  2245.     CF set on error
  2246.         AH = status (86h for function not supported)
  2247. SeeAlso: AX=D601h/BL=00h
  2248. --------X-15D800-----------------------------
  2249. INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
  2250.     AX = D800h
  2251.     CL = slot number (including embedded and virtual)
  2252. Return: CF clear if successful
  2253.         AH = 00h
  2254.     CF set on error
  2255.         AH = error code (80h,82h,83h,86h,87h)(see #0410)
  2256.     AL = bit flags (see #0409)
  2257.     BH = major revision level of configuration utility
  2258.     BL = minor revision level of configuration utility
  2259.     CX = checksum of configuration file
  2260.     DH = number of device functions
  2261.     DL = combined function information byte
  2262.     SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  2263. Note:    call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
  2264. SeeAlso: AX=D801h,AX=D804h
  2265.  
  2266. Bitfields for EISA AL bit flags:
  2267. Bit(s)    Description    (Table 0409)
  2268.  7    set if duplicate IDs
  2269.  6    set if product ID readable
  2270.  4,5    slot type (00=expansion, 01=embedded, 10=virtual device)
  2271.  0-3    duplicate ID number if bit 7 set
  2272.  
  2273. (Table 0410)
  2274. Values for EISA error code:
  2275.  80h    invalid slot number
  2276.  81h    invalid function number
  2277.  82h    EISA CMOS corrupt
  2278.  83h    empty slot
  2279.  84h    error clearing CMOS
  2280.  85h    EISA CMOS is full
  2281.  86h    invalid BIOS-FW function call
  2282.  87h    invalid system configuration
  2283.  88h    config utility version not supported
  2284. --------X-15D801-----------------------------
  2285. INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
  2286.     AX = D801h
  2287.     CH = function number to read
  2288.     CL = slot number (including embedded and virtual)
  2289.     DS:SI -> 320-byte buffer for standard configuration data block
  2290. Return: CF clear if successful
  2291.         AH = 00h
  2292.         DS:SI buffer filled
  2293.     CF set on error
  2294.         AH = error code (80h-83h,86h,87h) (see #0410)
  2295.     BX destroyed
  2296. Note:    call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
  2297. --------X-15D802-----------------------------
  2298. INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
  2299.     AX = D802h
  2300.     BH = EISA config utility major revision level
  2301.     BL = EISA config utility minor revision level
  2302. Return: CF clear if successful
  2303.         AH = 00h
  2304.     CF set on error
  2305.         AH = error code (84h,86h,88h) (see #0410)
  2306. Note:    call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
  2307. SeeAlso: AX=D803h
  2308. --------X-15D803-----------------------------
  2309. INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
  2310.     AX = D803h
  2311.     CX = length of data structure (0000h = empty slot)
  2312.         includes two bytes for config file checksum
  2313.     DS:SI -> configuration data
  2314. Return: CF clear if successful
  2315.         AH = 00h
  2316.     CF set on error
  2317.         AH = error code (84h-86h) (see #0410)
  2318. Note:    call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
  2319. SeeAlso: AX=D802h
  2320. --------X-15D804-----------------------------
  2321. INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
  2322.     AX = D804h
  2323.     CL = slot number (including embedded and virtual)
  2324. Return: CF clear if successful
  2325.         AH = 00h
  2326.     CF set on error
  2327.         AH = error code (80h,83h,86h) (see #0410)
  2328.     SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  2329. Note:    call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
  2330. SeeAlso: AX=D800h
  2331. --------b-15D820-----------------------------
  2332. INT 15 - Compaq LTE Lite - GET ???
  2333.     AX = D820h
  2334.     DS:SI -> 17-byte buffer for ???
  2335. Return: DS:SI buffer filled (first byte is length of remaining data, unless
  2336.       it is greater than 10h, in which case the second byte is 00h and no
  2337.       other data is returned)
  2338. Note:    this function is also supported by Compaq's EISA System ROM, Contura
  2339.       486/486c/486cx and recent DESKPRO/i ROMs
  2340. SeeAlso: AX=D821h
  2341. --------b-15D821-----------------------------
  2342. INT 15 - Compaq LTE Lite - SET ???
  2343.     AX = D821h
  2344.     DS:SI -> counted string (should not be more than 16 bytes)
  2345. Return: AH = 00h
  2346. Note:    this function is also supported by Compaq's EISA System ROM, Contura
  2347.       486/486c/486cx and recent DESKPRO/i ROMs
  2348. SeeAlso: AX=D820h
  2349. --------b-15D822BL00-------------------------
  2350. INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
  2351.     AX = D822h
  2352.     BL = 00h
  2353.     CX = size of buffer or 0000h to retrieve required buffer size
  2354.     DS:SI -> buffer for ??? (if CX nonzero)
  2355. Return: CF clear if successful
  2356.         AH = 00h
  2357.         DH = 08h
  2358.         CX = required buffer size to retrieve all data (if CX=0 on entry)
  2359.         DS:SI buffer filled (if CX nonzero on entry)
  2360.     CF set on error (BL nonzero)
  2361.         AH = 86h
  2362. --------b-15D823-----------------------------
  2363. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  2364.     AX = D823h
  2365.     BL = subfunction??? (00h or 80h)
  2366.     BH = ???
  2367.     DS:SI -> buffer for ??? (see #0411)
  2368. Return: CF clear if successful
  2369.         AH = 00h
  2370.         DH = 08h
  2371.         DL = ???
  2372.     CF set on error
  2373.         AH = error code
  2374.         86h BL neither 00h nor 80h
  2375.         87h ???
  2376.  
  2377. Format of Compaq EISA buffer:
  2378. Offset    Size    Description    (Table 0411)
  2379.  00h    BYTE    ???
  2380.  01h    WORD    ???
  2381.  03h    BYTE    ???
  2382.  04h    WORD    ???
  2383.  06h    WORD    ???
  2384.     ???
  2385. ----------15D824-----------------------------
  2386. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  2387.     AX = D824h
  2388.     CX = ???
  2389.     DS:SI -> ASCIZ string containing ???
  2390. Return: CF clear if successful
  2391.         AH = 00h
  2392.         CX = ???
  2393.     CF set on error
  2394.         AH = error code
  2395.         87h ??? failed
  2396.         88h ???
  2397. Note:    these functions are only available if ??? from keyboard controller
  2398.       command C0h
  2399. ----------15D825-----------------------------
  2400. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  2401.     AX = D825h
  2402.     CX = ???
  2403.     SI = ???
  2404.     DI = ???
  2405.     ???
  2406. Return: CF clear if successful
  2407.         AH = 00h
  2408.         CX = ???
  2409.     CF set on error
  2410.         AH = error code
  2411.         87h ??? failed
  2412.         88h ???
  2413.             CX = ???
  2414. Note:    these functions are only available if ??? from keyboard controller
  2415.       command C0h
  2416. ----------15D826-----------------------------
  2417. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  2418.     AX = D826h
  2419.     BX = ???
  2420.     CX = size of buffer in bytes
  2421.     DS:SI -> buffer for ???
  2422.     ???
  2423. Return: CF clear if successful
  2424.         AH = 00h
  2425.         CX = ???
  2426.     CF set on error
  2427.         AH = error code
  2428.         87h ??? failed
  2429.         88h ???
  2430. Note:    these functions are only available if ??? from keyboard controller
  2431.       command C0h
  2432. --------X-15D8-------------------------------
  2433. INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
  2434.     AH = D8h
  2435.     AL = 80h to 84h
  2436.     other registers as appropriate for AL=00h to 04h
  2437. Return: as appropriate for AL=00h to 04h
  2438. Note:    these functions are identical to AX=D800h to D804h, except that they
  2439.       should be called when using 32-bit CS addressing mode (pointers use
  2440.       ESI rather than SI as offset) instead of 16-bit addressing mode
  2441. SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
  2442. --------b-15D8-------------------------------
  2443. INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
  2444.     AH = D8h
  2445.     AL = A0h to A6h
  2446.     other registers as appropriate for AL=20h to 26h
  2447. Return: as appropriate for AL=20h to 26h
  2448. Note:    these functions are identical to AX=D820h to D826h, except that they
  2449.       should be called when using 32-bit CS addressing mode
  2450. ----------15DA-------------------------------
  2451. INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
  2452.     AH = DAh
  2453.     AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
  2454.     ???
  2455. Return: ???
  2456. SeeAlso: AH=DBh
  2457. ----------15DB-------------------------------
  2458. INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
  2459.     AH = DBh
  2460.     AL = function (00h-04h)
  2461.     ???
  2462. Return: ???
  2463. SeeAlso: AH=DAh
  2464. --------Q-15DE00-----------------------------
  2465. INT 15 - DESQview - GET PROGRAM NAME
  2466.     AX = DE00h
  2467. Return: AX = offset into DESQVIEW.DVO of program most recently selected from
  2468.         the "Switch Windows" menu (see #0412)
  2469. Note:    always returns AX=0000h under DESQview/X
  2470. SeeAlso: AX=DE07h
  2471.  
  2472. Format of program entry in DESQVIEW.DVO:
  2473. Offset    Size    Description    (Table 0412)
  2474.  00h    BYTE    length of name (FFh if end of file)
  2475.  01h  N BYTEs    name
  2476.       2 BYTEs    keys to invoke program (second = 00h if only one key used)
  2477.     BYTE    program type
  2478.         00h normal program
  2479.         04h divider
  2480.         80h Delete a Program
  2481.         81h Change a Program
  2482.     WORD    ??? apparently always 0000h
  2483. --------Q-15DE01-----------------------------
  2484. INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
  2485.     AX = DE01h
  2486. Return: nothing
  2487. Notes:    reads DESQVIEW.DVO, disables Open menu if file not in current directory
  2488.     NOP for DESQview/X
  2489. --------Q-15DE02-----------------------------
  2490. INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
  2491.     AX = DE02h
  2492. Return: nothing
  2493. Note:    this call is a NOP in DV 2.x
  2494. SeeAlso: AX=DE03h
  2495. --------Q-15DE03-----------------------------
  2496. INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
  2497.     AX = DE03h
  2498. Return: AX = ??? for current window
  2499.     BX = ??? for current window
  2500. Note:    this call is a NOP in DV 2.x
  2501. SeeAlso: AX=DE02h
  2502. --------Q-15DE04-----------------------------
  2503. INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
  2504.     AX = DE04h
  2505. Return: BX = bytes of common memory available
  2506.     CX = largest block available
  2507.     DX = total common memory in bytes
  2508. SeeAlso: AX=DE05h,AX=DE06h
  2509. --------Q-15DE05-----------------------------
  2510. INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
  2511.     AX = DE05h
  2512. Return: BX = KB of memory available
  2513.     CX = largest block available
  2514.     DX = total conventional memory in KB
  2515. SeeAlso: AX=DE04h,AX=DE06h
  2516. --------Q-15DE06-----------------------------
  2517. INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
  2518.     AX = DE06h
  2519. Return: BX = KB of expanded memory available
  2520.     CX = largest block available
  2521.     DX = total expanded memory in KB
  2522. SeeAlso: AX=DE04h,AX=DE05h
  2523. --------Q-15DE07-----------------------------
  2524. INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
  2525.     AX = DE07h
  2526. Return: AX = number of program as it appears on the "Switch Windows" menu
  2527. Note:    this API call may be made from a hardware interrupt handler
  2528. SeeAlso: AX=DE00h
  2529. --------Q-15DE08-----------------------------
  2530. INT 15 - DESQview - GET ???
  2531.     AX = DE08h
  2532. Return: AX = 0000h if ??? is not set to the current task
  2533.          0001h if ??? is set to the current task
  2534. --------Q-15DE09-----------------------------
  2535. INT 15 - DESQview - UNIMPLEMENTED
  2536.     AX = DE09h
  2537. Return: nothing (NOP in DV 1.x and 2.x)
  2538. --------Q-15DE0A-----------------------------
  2539. INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
  2540.     AX = DE0Ah
  2541.     BL = character
  2542. Return: character displayed, next call will display in next position (which
  2543.     wraps back to the start of the line if off the right edge of screen)
  2544. Notes:    displays character on bottom line of *physical* screen, regardless
  2545.       of current size of window (even entirely hidden)
  2546.     does not know about graphics display modes, just pokes the characters
  2547.       into display memory
  2548.     this API call may be made from a hardware interrupt handler
  2549. SeeAlso: AX=1003h
  2550. --------Q-15DE0B-----------------------------
  2551. INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
  2552.     AX = DE0Bh
  2553.     BL = API level minor version number
  2554.     BH = API level major version number
  2555. Return: AX = maximum API level (AH = major, AL = minor)
  2556. Notes:    if the requested API level is greater than the version of DESQview, a
  2557.       "You need a newer version" error window is popped up
  2558.     the API level defaults to 1.00, and is inherited by child tasks
  2559. --------Q-15DE0C-----------------------------
  2560. INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
  2561.     AX = DE0Ch
  2562.     BX = number of bytes
  2563. Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
  2564. Note:    use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  2565.       system memory
  2566. SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
  2567. --------Q-15DE0D-----------------------------
  2568. INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
  2569.     AX = DE0Dh
  2570.     ES:DI -> previously allocated block
  2571. Return: nothing
  2572. SeeAlso: AX=1002h,AX=DE0Ch
  2573. --------Q-15DE0E-----------------------------
  2574. INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
  2575.     AX = DE0Eh
  2576.     ES:DI -> name to find (see #0413)
  2577.     CX = length of name
  2578. Return: BX = 0000h not found
  2579.          0001h found
  2580.         DS:SI = object handle
  2581. SeeAlso: AH=12h/BH=11h,AH=12h/BX=1200h"GETNAME"
  2582.  
  2583. (Table 0413)
  2584. Values for special DESQview mailbox names:
  2585.  "COM1" ... "COM4"    RBcomm using COM1 ... COM4
  2586.  "DESQview/X Help Engine"
  2587.  "DESQview/X Network Server"  Network Manager
  2588.  "DESQview X Server0"    X-Windows server
  2589.  "DESQview X Server7"    X-Windows printing service
  2590.  "INBOX"        DESQview/X LPD requests
  2591.  "OUTBOX"        DESQview/X LPD responses
  2592.  "WAITBOX"        semaphore to synchronize DESQview/X LPD communications
  2593.  "_DVNM_"        DV/X v1.10 network manager
  2594. --------Q-15DE0F-----------------------------
  2595. INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
  2596.     AX = DE0Fh
  2597. Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
  2598. Notes:    sends a manager stream with opcodes AEh, BDh, and BFh to task's window
  2599.     enables an additional mouse mode
  2600. --------Q-15DE10-----------------------------
  2601. INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
  2602.     AX = DE10h
  2603.     BH = scan code
  2604.     BL = character
  2605. Return: nothing
  2606. Notes:    a later read will get the keystroke as if it had been typed by the user
  2607.     multiple pushes are read last-in first-out
  2608.     if a script exists for the pushed key in the current application, the
  2609.       script will be executed
  2610.     early copies of DV 2.00 destroy AX, BX, ES, and DI
  2611. SeeAlso: INT 16/AH=05h
  2612. --------Q-15DE11BL00-------------------------
  2613. INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
  2614.     AX = DE11h
  2615.     BL = 00h      viewport will not move automatically
  2616.          nonzero  viewport will move to keep cursor visible (default)
  2617. Return: nothing
  2618. --------Q-15DE12BX0000-----------------------
  2619. INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
  2620.     AX = DE12h
  2621.     BX = 0000h    select normal style (linefeed only moves down)
  2622.          nonzero  select C style (linefeed moves to start of next line)
  2623. Return: nothing
  2624. Note:    set on a per-task basis, and inherited from the parent task
  2625. --------Q-15DE13-----------------------------
  2626. INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
  2627.     AX = DE13h
  2628. Return: BX = number of calls to BEGINC or ENTERC
  2629.           (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
  2630.           (see INT 15/AX=101Ch)
  2631. Note:    this API call may be made from within a hardware interrupt handler
  2632. SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
  2633. --------Q-15DE14-----------------------------
  2634. INT 15 - DESQview v2.20+ - GET OBJECT TYPE
  2635.     AX = DE14h
  2636.     ES:DI -> object
  2637. Return: BL = 00h not an object
  2638.          08h window or task
  2639.          09h mailbox
  2640.          0Ah keyboard
  2641.          0Bh timer
  2642.          0Ch objectq
  2643.          0Fh pointer
  2644.          10h panel
  2645. SeeAlso: AX=1016h
  2646. --------Q-15DE15-----------------------------
  2647. INT 15 - DESQview v2.20+ - SET ERROR HANDLING
  2648.     AX = DE15h
  2649.     BL = error handling mode
  2650.         00h post system error on all error conditions
  2651.         01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
  2652.         messages sent to mailboxes which fail due to lack of system
  2653.         or common memory
  2654.         02h (v2.26+) same as 01h, but also return null pointer for GETMEM
  2655.         calls which fail due to lack of system memory
  2656. Return: nothing
  2657. SeeAlso: AX=DE0Ch,AX=DE16h
  2658. --------Q-15DE16-----------------------------
  2659. INT 15 - DESQview v2.20+ - GET ERROR HANDLING
  2660.     AX = DE16h
  2661. Return: BL = current mode
  2662.         00h always post system error
  2663.         01h return carry flag set on failed mailbox writes
  2664.         02h return CF set on failed mailbox writes and NULL on failed
  2665.         GETMEM calls
  2666. SeeAlso: AX=DE15h
  2667. --------Q-15DE17-----------------------------
  2668. INT 15 - DESQview v2.20-2.25 - reserved
  2669.     AX = DE17h
  2670. Return: pops up "Programming error" window
  2671. Note:    AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
  2672. SeeAlso: AX=1117h
  2673. --------Q-15DE17-----------------------------
  2674. INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
  2675.     AX = DE17h
  2676.     BX = function
  2677.         0000h   get current mapping context without setting
  2678.         nonzero set new mapping context to BX
  2679. Return: BX = mapping context in effect before call
  2680. Notes:    mapping contexts determine conventional-memory addressability; setting
  2681.       a mapping context ensures that the associated program and data areas
  2682.       are in memory for access.  Usable by drivers, TSRs and shared
  2683.       programs.
  2684.     caller need not be running under DESQview
  2685.     this API call may be made from a hardware interrupt handler
  2686. SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
  2687. --------Q-15DE18-----------------------------
  2688. INT 15 - DESQview v2.20+ - internal - ???
  2689.     AX = DE18h
  2690.     BP = function number
  2691.         high byte must be 10h
  2692.         low byte is function
  2693.         00h set ???
  2694.             BL = ???  (00h-10h, video mode???)
  2695.             BH = value to store
  2696.         03h set ???
  2697.             BL = ??? (stored in driver)
  2698.         0Ah get ???
  2699.             ES:DI -> 18-byte buffer to hold ???
  2700. Note:    calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
  2701. --------Q-15DE19-----------------------------
  2702. INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
  2703.     AX = DE19h
  2704.     BX = number of bytes to allocate
  2705. Return: AX = 0000h successful
  2706.         ES:DI -> allocated block
  2707.          nonzero insufficient memory
  2708. Note:    this API call may be made from within a hardware interrupt handler
  2709. SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
  2710. --------Q-15DE1A-----------------------------
  2711. INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
  2712.     AX = DE1Ah
  2713.     ES:DI -> previously allocated block
  2714. Return:    AX = 0000h (successful)
  2715. Note:    this function may be called from within a hardware interrupt handler
  2716. SeeAlso: AX=DE0Dh,AX=DE19h
  2717. --------Q-15DE1B-----------------------------
  2718. INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
  2719.     AX = DE1Bh
  2720. Return: nothing
  2721. SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
  2722. --------Q-15DE1C-----------------------------
  2723. INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
  2724.     AX = DE1Ch
  2725. Return: nothing
  2726. Notes:    similar to AX=101Bh, but begins the critical region without ensuring
  2727.       that DOS is free
  2728.     the official documentation states that this call should be paired with
  2729.       "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
  2730.     this API call may be made from within a hardware interrupt handler
  2731. SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
  2732. --------Q-15DE1D-----------------------------
  2733. INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
  2734.     AX = DE1Dh
  2735.     DX = segment of handle for task to receive keystroke
  2736.     BL = character
  2737.     BH = scan code
  2738. Return: AX = 0000h if successful
  2739.        nonzero if receiver's keyboard buffer was full
  2740. Notes:    the key is treated as though the user had pressed it, ignoring any
  2741.       script which may be bound to the key, and using the current field
  2742.       table if the keyboard object is in field processing mode
  2743.     multiple PUTKEYs are seen in the order in which they are executed
  2744. SeeAlso: AX=DE10h
  2745. --------Q-15DE1E-----------------------------
  2746. INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
  2747.     AX = DE1Eh
  2748. Return: CL = actual number of rows on screen
  2749.     CH = actual number of columns on screen
  2750.     BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
  2751. Note:    this API call may be made from a hardware interrupt handler
  2752. SeeAlso: INT 10/AH=0Fh
  2753. --------Q-15DE1F-----------------------------
  2754. INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
  2755.     AX = DE1Fh
  2756. Return: BX = segment of task handle or 0000h if no tasks are using DOS
  2757. Note:    this API call may be made from within a hardware interrupt handler
  2758. SeeAlso: AX=DE13h,INT 21/AH=34h
  2759. --------Q-15DE20-----------------------------
  2760. INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
  2761.     AX = DE20h
  2762.     BX = segment of handle of task to interupt
  2763.     DX:CX -> FAR interrupt routine
  2764.     BP,SI,DI,DS,ES as required by interrupt routine
  2765. Return: nothing
  2766. Notes:    unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
  2767.       making the DISPATCHINT call
  2768.     multiple "DISPATCHINT" calls are processed in the order in which they
  2769.       were executed
  2770.     the FAR routine is entered with the current ES, DS, SI, DI, and BP
  2771.       values, using the task's internal stack (see AX=101Ah); only SS:SP
  2772.       needs to be preserved
  2773.     this API call may be made from within a hardware interrupt handler
  2774. SeeAlso: AX=1021h,AX=DE2Ah
  2775. --------Q-15DE21-----------------------------
  2776. INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
  2777.     AX = DE21h
  2778.     BX = new state
  2779.         0000h turn off
  2780.         nonzero turn on
  2781. Return: BX = old state of virtualization
  2782. Notes:    this API call may be made from within a hardware interrupt handler
  2783.     under DV 2.40 and 2.42, this call appears to have no effect and always
  2784.       returns a nonzero value in BX which appears to be the offset within
  2785.       the DV common memory segment of the caller's task object; it may
  2786.       only have an effect within a hardware interrupt handler
  2787. SeeAlso: AX=1117h,AX=DE17h
  2788. --------Q-15DE22-----------------------------
  2789. INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
  2790.     AX = DE22h
  2791.     DX = segment of task handle
  2792. Return: DX = total amount of memory in paragraphs
  2793.     BX = amount of system memory in paragraphs
  2794.     CX = largest block of system memory available in paragraphs
  2795.     AX = memory flags (see #0414)
  2796. Notes:    if the task handle is a child task, the returned values will be for the
  2797.       process containing the task, rather than the task itself
  2798.     if the process's system memory is swapped out, BX,CX,DX remain
  2799.       unchanged, because the memory usage cannot be determined
  2800. SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
  2801.  
  2802. Bitfields for DESQview process memory flags:
  2803. Bit(s)    Description    (Table 0414)
  2804.  0    system memory resides in shared memory
  2805.  1    process's memory is swapped out
  2806.  2    process's system memory is swapped out
  2807. --------Q-15DE23-----------------------------
  2808. INT 15 U - DESQview v2.31+ - ???
  2809.     AX = DE23h
  2810.     BX = ??? IRQ number on first PIC?
  2811.     CX = ??? IRQ number on second PIC?
  2812. Return: ???
  2813. Note:    called by QEMM 6.00+
  2814. --------Q-15DE24-----------------------------
  2815. INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
  2816.     AX = DE24h
  2817.     BX = length of .DVP data
  2818.     CX = length of ??? string
  2819.     DS:SI -> ??? string
  2820.     ES:DI -> .DVP data (see #0317 at AX=102Ch)
  2821. Return: BX = segment of task handle??? or 0000h on error
  2822. Note:    this call is similar to AX=102Ch except that it can interpret the
  2823.       extended DVP data
  2824. SeeAlso: AX=102Ch
  2825. --------Q-15DE25-----------------------------
  2826. INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
  2827.     AX = DE25h
  2828.     ES:DI -> 67-byte buffer for ASCIZ directory name
  2829. Return: ES:DI buffer filled with directory from which DESQview was started
  2830. BUG:    DV 2.42 does not place a terminating NUL at the end of the directory
  2831.       name, so if the buffer is not cleared to zeros before the call,
  2832.       there is no way to tell where the directory name ends.  This bug
  2833.       has been fixed in DV 2.52 (DV/X 1.02)
  2834. SeeAlso: AX=DE2Eh,INT 21/AH=47h
  2835. --------Q-15DE26-----------------------------
  2836. INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
  2837.     AX = DE26h
  2838. Return: BX = segment of handle for task with keyboard focus
  2839. Note:    under DESQview/X, the X server always has the keyboard focus unless a
  2840.       "direct" window is active
  2841. SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
  2842. --------Q-15DE27-----------------------------
  2843. INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
  2844.     AX = DE27h
  2845.     BX = type
  2846.         0000h process
  2847.         0001h task
  2848.     ES:DI -> list of Instance Item Structures (see #0415)
  2849. Return: CF clear if successful
  2850.         AX = ???
  2851.         BX = ???
  2852.     CF set on error
  2853.         AX = error code???
  2854.         0004h invalid BX value
  2855. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2856. SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
  2857.  
  2858. Format of DESQview Instance Item Structure [one element of list]:
  2859. Offset    Size    Description    (Table 0415)
  2860.  00h    WORD    length of data area DESQview should save and restore on context
  2861.           switches (0000h = end of list)
  2862.  02h    DWORD    pointer to area to be saved/restored
  2863. --------Q-15DE28-----------------------------
  2864. INT 15 U - DESQview v2.50+ - ???
  2865.     AX = DE28h
  2866.     BX = segment of ??? or 0000h for default
  2867.     ???
  2868. Return: ???
  2869. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2870. SeeAlso: AX=DE2Ah
  2871. --------Q-15DE29BX0000-----------------------
  2872. INT 15 U - DESQview/X - ???
  2873.     AX = DE29h
  2874.     BX = 0000h
  2875.     ???
  2876. Return: CF clear if successful
  2877.         ???
  2878.     CF set on error
  2879. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2880.     under DESQview 2.60, this function and all other subfunctions of
  2881.       AX=DE29h always return CF set, as they are unique to DESQview/X
  2882. --------Q-15DE29BX0001-----------------------
  2883. INT 15 U - DESQview/X - ???
  2884.     AX = DE29h
  2885.     BX = 0001h
  2886.     DX = segment of window handle
  2887. Return: CF clear if successful
  2888.         AX = ???
  2889.         DX = ???
  2890.     CF set on error
  2891. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2892. --------Q-15DE29BX0002-----------------------
  2893. INT 15 U - DESQview/X - ???
  2894.     AX = DE29h
  2895.     BX = 0002h
  2896.     DX = segment of window handle
  2897. Return: CF clear if successful
  2898.         AX = ???
  2899.         DX = ???
  2900.     CF set on error
  2901. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2902. --------Q-15DE29BX0003-----------------------
  2903. INT 15 U - DESQview/X - ???
  2904.     AX = DE29h
  2905.     BX = 0003h
  2906.     DX = segment of window handle
  2907. Return: CF clear if successful
  2908.         ???
  2909.     CF set on error
  2910. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2911. --------Q-15DE29BX0004-----------------------
  2912. INT 15 U - DESQview/X - GET DISPLAY NAME
  2913.     AX = DE29h
  2914.     BX = 0004h
  2915.     CX = size of buffer in bytes
  2916.     DX = segment of window handle
  2917.     ES:DI -> buffer for display name
  2918. Return: CF clear if successful
  2919.         buffer filled with ASCIZ display name (truncated if necessary) or
  2920.           null string if no display
  2921.     CF set on error
  2922. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2923.     the name ":0" refers to the local display
  2924. --------Q-15DE29BX0005-----------------------
  2925. INT 15 U - DESQview/X - ???
  2926.     AX = DE29h
  2927.     BX = 0005h
  2928.     ???
  2929. Return: CF clear if successful
  2930.         ???
  2931.     CF set on error
  2932. Note:    under DESQview 2.60, this function and all other subfunctions of
  2933.       AX=DE29h always return CF set, as they are unique to DESQview/X
  2934. --------Q-15DE2A-----------------------------
  2935. INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
  2936.     AX = DE2Ah
  2937.     BX = segment of handle for task to interrupt or 0000h for caller
  2938.     DX:CX -> interrupt routine
  2939.     BP,SI,DI,DS,ES as required by interrupt routine
  2940. Return: nothing
  2941. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2942.     this call is the same as AX=DE20h except that it will delay
  2943.       interrupting the specified task until after it has exited DOS
  2944. SeeAlso: AX=1021h,AX=DE20h
  2945. --------Q-15DE2B-----------------------------
  2946. INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
  2947.     AX = DE2Bh
  2948.     ES:DI -> starting object
  2949.         0000h:0000h for first object in list???
  2950. Return: AX = status
  2951.         0000h successful
  2952.         ES:DI -> next object of same type (window/non-window)
  2953.         0001h failed (ES:DI was not a valid handle)
  2954. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2955.     there are two separate lists, one for window/task objects and one
  2956.       for all other objects
  2957. SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
  2958. --------Q-15DE2C-----------------------------
  2959. INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
  2960.     AX = DE2Ch
  2961.     DX = window information format version (0100h for DESQview 2.5x)
  2962.     BX = segment of window handle or 0000h for default
  2963.     ES:DI -> buffer for window information (see #0416)
  2964. Return: AX = status
  2965.         0000h successful
  2966. Note:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  2967. SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
  2968.  
  2969. Format of DESQview window information:
  2970. Offset    Size    Description    (Table 0416)
  2971.  00h    BYTE    task flag: 00h window, 01h task
  2972.  01h    BYTE    process number if owner task
  2973.         00h if non-owner task
  2974.  02h    WORD    segment of owner's handle, 0000h if orphaned
  2975.  04h    WORD    mapping context (see #0306 at AX=1016h)
  2976.  06h    BYTE    task status (see #0417)
  2977.  07h    BYTE    unused
  2978.  08h    WORD    status bits (see #0418)
  2979.  0Ah    BYTE    01h if foreground-only window
  2980.  
  2981. (Table 0417)
  2982. Values for DESQview task status:
  2983.  00h    "Waiting" waiting for input
  2984.  01h    "Idle" keyboard poll limit reached
  2985.  03h    same as 01h
  2986.  04h    "Pausing" INT 15/AX=1000h pause called
  2987.  04h    DV/X direct: user did something to allow task switch
  2988.  05h    "ModeChg" video mode about to be changed
  2989.  06h    "ModeNtf" notify that video mode changed
  2990.  07h    "MoniCh" requested change to other monitor
  2991.  08h    "StartPgm" control relinquished to start new process
  2992.  09h    "MgrCan" made window manager CANCEL command
  2993.  0Ah    "Slicing" time slice expired
  2994.  0Bh    "Exit DOS" notify on DOS calls
  2995.  0Ch    "Enter DOS" process is re-entering DOS
  2996.  0Dh    "Terminate" INT 21/AH=4Ch or task freed
  2997.  0Eh    "BrkNxt" Control-Break pressed
  2998.  0Fh    "MgrCol" keyboard focus taken away
  2999.  10h    "PgmInt" interrupted by API call from another task
  3000.  11h    "BldOpen" call to INT 15/AX=DE01h
  3001.  
  3002. Bitfields for DESQview task status bits:
  3003. Bit(s)    Description    (Table 0418)
  3004.  6    task is freeing another task
  3005.  5    process is being created
  3006.  4    user suspended process
  3007.  3    process suspended itself
  3008.  2    process is resized direct window (suspended)
  3009.  1    process swapped out
  3010.  0    DESQview process
  3011. --------Q-15DE2D-----------------------------
  3012. INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
  3013.     AX = DE2Dh
  3014.     CX = direction
  3015.         FFFFh set socket handler
  3016.         DX:BX -> FAR function for socket interface
  3017.             must be of the format described under INT 63"DESQview"
  3018.               at #2121
  3019.         other get socket handler
  3020.         Return: DX:BX -> socket handler (see #2121)
  3021. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  3022.     the "set" subfunction is normally called only by SOCKET.DVR
  3023. SeeAlso: AX=DE2Eh,INT 63"DESQview",#2121
  3024. --------Q-15DE2E-----------------------------
  3025. INT 15 U - DESQview v2.50+ - SOCKET API
  3026.     AX = DE2Eh
  3027.     DX:BX -> socket record (see #0420)
  3028.         0000h:0000h to create a new socket record
  3029. Return: CX = size of socket record in bytes
  3030.     DX:BX -> socket record which was used
  3031. Notes:    DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  3032.     socket records are allocated from common memory
  3033.     for Unix compatibility, each socket and connection on a socket is
  3034.       allocated a DOS file handle (referencing an SFT for NUL) which is
  3035.       used on various calls to specify which of possibly multiple
  3036.       connections is to be operated upon
  3037. SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
  3038.  
  3039. (Table 0419)
  3040. Values for DESQview/X socket API function number:
  3041.  0000h    initialize socket???
  3042.  0001h    "gethostname"
  3043.  0002h    "ioctl" check for input
  3044.  0003h    "sleep" delay for specified period
  3045.  0004h    "htons" convert word to network (big-endian) byte order
  3046.  0005h    "select"
  3047.  0006h    "bsd_close"/"so_close" close socket
  3048.  0007h    NOP
  3049.  0008h    "connect" initiate connection on socket
  3050.  0009h    "recv"/"recvfrom" read from socket
  3051.  000Ah    "socket"
  3052.  000Bh    ???
  3053.  000Ch    "gethostbyname"
  3054.  000Dh    "send"/"sendto" write to socket
  3055.  000Eh    ??? (does something to all connections for process)
  3056.  000Fh    "getpid" get process identifier
  3057.  0010h    "gettimeofday"
  3058.  0011h    "bind" assign name to socket
  3059.  0012h    "listen" listen for connections on socket
  3060.  0013h    "accept" accept connection on socket
  3061.  0014h    connect to X server
  3062.  0015h    "gethostbyaddr" get host information for an address
  3063.  0016h    "getprotobyname"
  3064.  0017h    "getprotobynumber"
  3065.  0018h    "getservbyname"
  3066.  0019h    "getservbyport"
  3067.  001Ah    "getsockname" determine name bound to socket
  3068.  001Bh    "getpeername" get name of connected peer
  3069.  001Ch    "getsockopt"/"setsockopt"
  3070.  001Dh    "so_exit"     close all sockets for calling process
  3071.  001Eh    "issock" determine whether file handle references socket
  3072.  001Fh    "so_attach" reattach previously detached socket
  3073.  0020h    "so_detach" temporarily detach socket
  3074.  0021h    "dvpath" get DESQview directory (see also AX=DE24h)
  3075.  0022h    "NewProc" start new application (see also AX=102Ch)
  3076.  0023h    "so_linkup"
  3077.  0024h    "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
  3078.  0025h    indirect INT 15h call
  3079.  0026h    Network Manager interface
  3080.  0027h    "so_unlink"    close connection from "so_linkup"
  3081.  0028h    "raisepriority"
  3082.  0029h    "lowerpriority"
  3083.  002Ah    "so_private" ???
  3084.  FFFFh    "NetExit" (appears to be a NOP)
  3085.  
  3086. Format of DESQview/X socket record:
  3087. Offset    Size    Description    (Table 0420)
  3088.  00h    WORD    signature F0ADh
  3089.  02h    WORD    function number (see #0419)
  3090.  04h    WORD    returned error code (see #0440)
  3091.  06h    WORD    maximum message size??? (usually 0400h)
  3092.  08h    WORD    PSP segment to use or 0000h if socket not valid
  3093.  0Ah    WORD    scratch space (JFT size)
  3094.  0Ch    DWORD    scratch space (JFT address)
  3095.  10h    DWORD    mailbox handle (initialized by function 0000h)
  3096.  14h    DWORD    timer object handle (initialized by function 0000h)
  3097. ---function 0000h---
  3098.  18h    WORD    (ret) ???
  3099. ---function 0001h---
  3100.  18h    WORD    (ret) status???
  3101.  1Ah 128 BYTEs    (ret) ASCIZ hostname (empty string if not on network)
  3102.  9Ah    WORD    maximum length of hostname to return
  3103. ---function 0002h---
  3104.  18h    WORD    (ret) status
  3105.  1Ah    WORD    socket's file handle
  3106.  1Ch    WORD    IOCTL function
  3107.         05h "FIONREAD" determine available input
  3108.         06h "FIONBIO" set blocking state of socket
  3109.  1Eh    WORD    (return, subfn 05h) number of bytes available for reading
  3110.         (call, subfn 06h) 0000h blocking, nonzero nonblocking
  3111. ---function 0003h---
  3112.  18h  2 BYTEs    unused
  3113.  1Ah    WORD    delay time in seconds
  3114. ---function 0004h---
  3115.  18h    WORD    (ret) result in network (big-endian) byte order
  3116.  1Ah    WORD    value to convert to network byte order
  3117. ---function 0005h---
  3118.  18h    WORD    (ret) number of handles meeting the specified conditions???
  3119.  1Ah    WORD    number of file handles in each bitset
  3120.  1Ch    DWORD    bitset of socket handles to check for readability
  3121.  20h    DWORD    bitset of socket handles to check for writability
  3122.  24h    DWORD    bitset of socket handles to check for errors
  3123.  28h    WORD    timeout in ??? or 0000h to block until some socket ready
  3124.  2Ah    DWORD    ???
  3125.  2Eh    DWORD    ???
  3126. ---function 0006h---
  3127.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3128.  1Ah    WORD    socket's file handle
  3129. ---function 0008h---
  3130.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3131.  1Ah    WORD    socket's file handle
  3132.  1Ch    WORD    0001h if socket name specified, 0000h if not
  3133.  1Eh    WORD    length of socket name
  3134.  20h  N BYTEs    name of socket to which to connect
  3135. ---function 0009h---
  3136.  18h    WORD    (ret) number of bytes actually read, 0000h if connection
  3137.             closed, or FFFFh on error
  3138.  1Ah    WORD    socket's file handle
  3139.  1Ch    WORD    number of bytes to read
  3140.  1Eh    WORD    flags
  3141.  20h    WORD    0000h if no source address desired
  3142.         0001h if source address is to be stored (datagram sockets)
  3143.  22h    WORD    length of source address
  3144.  24h 110 BYTEs    source address
  3145.  92h 1K BYTEs    buffer for data to be read
  3146. ---function 000Ah---
  3147.  18h    WORD    (ret) socket's file handle or FFFFh on error
  3148.  1Ah    WORD    address family (0001h,0002h)
  3149.  1Ch    WORD    socket type
  3150.  1Eh    WORD    protocol
  3151. ---function 000Bh---
  3152.  18h    WORD    (ret) 0001h if ??? or FFFFh on error
  3153.  1Ah    WORD    socket's file handle
  3154.  1Eh    WORD    (call) ???
  3155. ---function 000Ch---
  3156.  18h 128 BYTEs    ASCIZ hostname (special case if empty string or "unix")
  3157.  98h    ???    (ret) packed 'hostent' structure
  3158.  A2h    ???    (ret) ???
  3159. ---function 000Dh---
  3160.  18h    WORD    (ret) number of bytes actually written or FFFFh on error
  3161.  1Ah    WORD    socket's file handle
  3162.  1Ch    WORD    number of bytes to write
  3163.  1Eh    WORD    number of bytes to follow in subsequent writes???
  3164.  20h    WORD    flags
  3165.  22h    WORD    0000h if no destination specified, 0001h if destination present
  3166.  24h    WORD    0001h if broadcast message???, 0000h if not
  3167.         (ignored if no destination specified)
  3168.  26h    WORD    length of destination address
  3169.  28h 110 BYTEs    destination address
  3170.  96h 1K BYTEs    buffer containing data to be written
  3171. ---function 000Eh---
  3172.  no additional fields
  3173. ---function 000Fh---
  3174.  18h    DWORD    (ret) DESQview task handle of calling process
  3175. ---function 0010h---
  3176.  18h    DWORD    (ret) current time
  3177.  1Ch    DWORD    (ret) ???
  3178. ---function 0011h---
  3179.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3180.  1Ah    WORD    socket's file handle
  3181.  1Ch    WORD    length of name
  3182.  1Eh  N BYTEs    buffer for socket name
  3183. ---function 0012h---
  3184.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3185.  1Ah    WORD    socket's file handle
  3186.  1Ch    WORD    maximum backlog of pending connections allowed on socket
  3187. ---function 0013h---
  3188.  18h    WORD    (ret) file handle for new connection or FFFFh on error
  3189.  1Ah    WORD    listen()ing socket's file handle
  3190.  1Ch    WORD    (call) length of buffer for connecting entity's address
  3191.         (ret) actual length of address
  3192.  1Eh  N BYTEs    buffer for connecting entity's address (110 bytes???)
  3193. ---function 0014h---
  3194.  18h    WORD    (ret) socket's file handle or FFFFh on error
  3195.  1Ah  4 BYTEs    (ret) ???
  3196.  1Eh    WORD    (ret) ???
  3197.  20h    WORD    (ret) ???
  3198.  22h 256 BYTEs    ASCIZ X display name
  3199. 122h    ???
  3200. ---function 0015h---
  3201.  18h    WORD    (call) type of address??? (test for 0001h seen)
  3202.  1Ah    WORD    (call) length of buffer for host address
  3203.  1Ch 110 BYTEs    buffer containing ASCIZ host address
  3204.  8Ah    WORD    (ret) offset of official host name
  3205.  8Ch    WORD    (ret) offset of alias list???
  3206.  8Eh    WORD    (ret) address type???
  3207.  90h    WORD    (ret) length of an address in bytes???
  3208.  92h    WORD    (ret) offset of address???
  3209.  9Ah  N BYTEs    (ret) buffer for hostname, alias list, and host address
  3210. ---function 0016h---
  3211.  18h    ???    buffer for ASCIZ protocol name
  3212.  98h    ???
  3213. ---function 0017h---
  3214.  18h    WORD    (call) protocol number
  3215.  1Ah    WORD    (ret) ??? or 0001h
  3216. ---function 0018h---
  3217.  18h 128 BYTEs    buffer containing ASCIZ ???
  3218.  98h 128 BYTEs    buffer containing ASCIZ ???
  3219. 118h    WORD    (ret) ???
  3220. ---function 0019h---
  3221.  18h    WORD    port number
  3222.  1Ah 128 BYTEs    (call) ASCIZ host name
  3223.         (ret) packed servent strctures???
  3224.  9Ah    WORD    (ret) ???
  3225. ---function 001Ah---
  3226.  18h    WORD    (ret) 0000h if successful, FFFFh on error
  3227.  1Ah    WORD    socket's file handle
  3228.  1Ch    WORD    (call) length of buffer for socket name
  3229.         (ret) actual length of socket name
  3230.  1Eh  N BYTEs    buffer for socket name
  3231. ---function 001Bh---
  3232.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3233.  1Ah    WORD    socket's file handle
  3234.  1Ch    WORD    (call) size of buffer for name
  3235.         (ret) actual size of name
  3236.  1Eh  N BYTEs    buffer for peer's name
  3237. ---function 001Ch---
  3238.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3239.  1Ah    WORD    direction: 0000h to get, 0001h to set
  3240.  1Ch    WORD    socket's file handle
  3241.  1Eh    WORD    option level
  3242.  20h    WORD    option name
  3243.  22h    WORD    (call) length of buffer for option value
  3244.         (ret) actual length of option value
  3245.  24h  N BYTEs    buffer for option value
  3246. ---function 001Dh---
  3247.  no additional fields
  3248. ---function 001Eh---
  3249.  18h    WORD    (ret) status: 0000h ??? or 0001h ???
  3250.  1Ah    WORD    file handle which may or may not be a socket
  3251. ---function 001Fh---
  3252.  18h    WORD    (ret) file handle or FFFFh on error
  3253.  1Ah    DWORD    (call) pointer to Socket Context Record (see #0441) of a
  3254.             previously detached socket
  3255. ---function 0020h---
  3256.  18h    WORD    (ret) status: 0000h if successful or FFFFh on error
  3257.  1Ah    WORD    socket's file handle
  3258.  1Ch    DWORD    (ret) pointer to Socket Context Record (see #0441) for
  3259.             the file handle
  3260. ---function 0021h---
  3261.  18h 64 BYTEs    buffer for DESQview startup directory (see AX=DE25h)
  3262. ---function 0022h---
  3263.  18h    DWORD    (ret) task handle of new application
  3264.  1Ch    WORD    size of .DVP data
  3265.  1Eh 129 BYTEs    ASCIZ ???
  3266.  9Fh  N BYTEs    .DVP data (see #0317 at AX=102Ch)
  3267. ---function 0023h---
  3268.  18h    WORD    (ret) ??? or FFFFh on error
  3269.  1Ah    WORD    socket's file handle???
  3270. ---function 0024h---
  3271.  18h    WORD    (ret) DOS error code (see #0885 at INT 21/AH=59h)
  3272.             0000h if successful
  3273.  1Ah 129 BYTEs    ASCIZ filename/pathname
  3274. 11Bh 129 BYTEs    ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
  3275. ---function 0025h---
  3276.  18h    WORD    value of AX
  3277.  1Ah    WORD    value of BX
  3278.  1Ch    WORD    (call) value of CX for call if AH value other than 12h
  3279.         (call) number of stack parameters if AH value is 12h
  3280.         (ret) returned CX for calls other than INT 15/AH=12h
  3281.  1Eh    WORD    value of DX
  3282.  20h    WORD    value of DI
  3283.  22h    WORD    value of SI
  3284.  24h    WORD    value of DS
  3285.  26h    WORD    value of ES
  3286.  28h    WORD    (ret) value of FLAGS after call
  3287.  2Ah  N DWORDs    (call) stack parameters for INT 15/AH=12h call
  3288.         (ret) stack results from INT 15/AH=12h call
  3289. ---function 0026h---
  3290.  18h    WORD    (call) Network Manager subfunction (see #0421)
  3291.         (ret) status??? (0000h on error)
  3292.  1Ah    WORD    (call) size of parameter data
  3293.         (ret) size of returned data
  3294.  1Ch  N BYTEs    (call) parameter data required by call (see #0422,#0423,#0439)
  3295.         (ret) result data (see #0432,#0433,#0438)
  3296. ---function 0027h---
  3297.  18h    WORD    (ret) status: 0000h if successful, FFFFh on error
  3298.  1Ah    WORD    socket's file handle
  3299. ---functions 0028h,0029h---
  3300.  18h    WORD    (call) file handle for which to set priority low/high
  3301.             FFFFh to change calling task's priority
  3302. ---function 002Ah---
  3303.  no additional fields
  3304.  
  3305. (Table 0421)
  3306. Values for DESQview/X Network Manager subfunction:
  3307.  0004h    "so_exit"???
  3308.  0005h    "gethostbyname"
  3309.  0006h    "gethostname"
  3310.  0009h    "socket"
  3311.  000Dh    "gethostbyaddr"
  3312.  000Fh    "getprotobyname"
  3313.  0010h    get protocol name for protocol number
  3314.  0011h    "getservbyname"
  3315.  0012h    "getservbyport" (see #0425)
  3316.  0013h    "getsockname"??? (see #0426)
  3317.  0016h    "shutdown" (see #0427)
  3318.  0017h    kill Network Manager
  3319.  0018h    "getpeername"??? (see #0428)
  3320.  0019h    ??? (called by socket function 0000h) (see #0429)
  3321.  001Ah    ??? (see #0430)
  3322.  001Bh    "so_linkup" (see #0431)
  3323.  001Dh    "getnetstatus" get network services (see #0432)
  3324.  001Fh    "getpwuid"
  3325.  0020h    "getpwnam"
  3326.  0021h    "getpwvar"
  3327.  0022h    "crypt"
  3328.  0023h    "so_unlink"
  3329.  0024h    "getlogin" (see #0433)
  3330.  0028h    "sethostent"
  3331.  0029h    "gethostent"
  3332.  002Ah    "soaddhost"
  3333.  002Bh    "soupdatehost"
  3334.  002Ch    "sodeletehost"
  3335.  002Dh    "setservent"
  3336.  002Eh    "getservent"
  3337.  002Fh    "setpwent"
  3338.  0030h    "getpwent" (see #0434)
  3339.  0031h    "sethostpath" (see #0435)
  3340.  0032h    "endservent"
  3341.  0033h    "endhostent"
  3342.  0034h    "getnettype" get IP network number (see #0436)
  3343.  0035h    ??? (pops up Network Manager window)
  3344.  0037h    "getnettimeout" (see #0437)
  3345.  0038h    get machine name and IP address (see #0438)
  3346.  0039h    "getuid" (see #0439)
  3347. ---DV/X v2.0+ ---
  3348.  0041h    "deletepwnam"
  3349.  0045h    "renamepw"
  3350.  
  3351. Format of Function 0026h/Subfunction 000Fh data:
  3352. Offset    Size    Description    (Table 0422)
  3353.  00h  8 BYTEs    (ret) ???
  3354.  
  3355. Format of Function 0026h/Subfunction 0010h data:
  3356. Offset    Size    Description    (Table 0423)
  3357.  00h  2 BYTEs    (ret) ???
  3358.  02h    WORD    (ret) protocol number
  3359.  04h    WORD    (call) protocol number for which to get name
  3360.  06h    WORD    (ret) ???
  3361.  08h    var    (ret) ASCIZ protocol name
  3362.  N    var    (ret) ASCIZ protocol name
  3363.  
  3364. Format of Function 0026h/Subfunction 0011h data:
  3365. Offset    Size    Description    (Table 0424)
  3366.  00h  8 BYTEs    ???
  3367.  08h    var    (ret) ASCIZ protocol name
  3368.     var    (ret) ASCIZ ??? name
  3369.     var    (ret) ASCIZ ??? name
  3370.  
  3371. Format of Function 0026h/Subfunction 0012h data:
  3372. Offset    Size    Description    (Table 0425)
  3373.  00h  8 BYTEs    (ret) ???
  3374.  
  3375. Format of Function 0026h/Subfunction 0013h data:
  3376. Offset    Size    Description    (Table 0426)
  3377.  00h 116 BYTEs    (ret) ???
  3378.  
  3379. Format of Function 0026h/Subfunction 0016h ("shutdown") data:
  3380. Offset    Size    Description    (Table 0427)
  3381.  00h    WORD    (ret) shutdown status (0000h successful, FFFFh error)
  3382.  02h  4 BYTEs    (ret) ???
  3383.  04h    WORD    (call) socket handle
  3384.  06*h    WORD    (call) what (0 = receives, 1 = sends, 2 = both)
  3385.  
  3386. Format of Function 0026h/Subfunction 0018h data:
  3387. Offset    Size    Description    (Table 0428)
  3388.  00h 116 BYTEs    (ret) ???
  3389.  
  3390. Format of Function 0026h/Subfunction 0019h data:
  3391. Offset    Size    Description    (Table 0429)
  3392.  00h  4 BYTEs    (ret) ???
  3393.  04h    DWORD    (ret) task handle of ???
  3394.  
  3395. Format of Function 0026h/Subfunction 001Ah data:
  3396. Offset    Size    Description    (Table 0430)
  3397.  00h 38 BYTEs    (ret) ???
  3398.  
  3399. Format of Function 0026h/Subfunction 001Bh data:
  3400. Offset    Size    Description    (Table 0431)
  3401.  00h 10 BYTEs    (ret) ???
  3402.  
  3403. Format of Function 0026h/Subfunction 001Dh return data [array]:
  3404. Offset    Size    Description    (Table 0432)
  3405.  00h    WORD    ??? or FFFFh if end of array
  3406.  02h  7 BYTEs    ???
  3407.  09h 27 BYTEs    ASCIZ name of service
  3408.  
  3409. Format of Function 0026h/Subfunction 0024h return data:
  3410. Offset    Size    Description    (Table 0433)
  3411.  00h    var    ASCIZ username
  3412.  
  3413. Format of Function 0026h/Subfunction 0030h data:
  3414. Offset    Size    Description    (Table 0434)
  3415.  00h    WORD    (call) UID or 0000h for current user
  3416.         (ret) ???
  3417.  02h    WORD    (ret) UID
  3418.  04h  6 BYTEs    (ret) ???
  3419.  0Ah    var    (ret) ASCIZ username
  3420.     var    (ret) ASCIZ encrypted password
  3421.     var    (ret) ASCIZ initial ("home") directory
  3422.  
  3423. Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
  3424. Offset    Size    Description    (Table 0435)
  3425.  00h   4 BYTEs    ???
  3426.  04h 144 BYTEs    ASCIZ ???
  3427.  
  3428. Format of Function 0026h/Subfunction 0034h data:
  3429. Offset    Size    Description    (Table 0436)
  3430.  00h  1-3 BYTEs IP network number of caller's machine (low byte first)
  3431.  
  3432. Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
  3433. Offset    Size    Description    (Table 0437)
  3434.  00h    WORD    (ret) timeout
  3435.  02h  2 BYTEs    (ret) ???
  3436.  
  3437. Format of Function 0026h/Subfunction 0038h return data:
  3438. Offset    Size    Description    (Table 0438)
  3439.  00h    BYTE    ???
  3440.  01h  4 BYTEs    IP address
  3441.  05h    var    ASCIZ machine name
  3442.     ???
  3443.  
  3444. Format of Function 0026h/Subfunction 0039h ("getuid") return data:
  3445. Offset    Size    Description    (Table 0439)
  3446.  00h    WORD    user ID
  3447.  02h  2 BYTEs    ???
  3448. SeeAlso: #0435,#0438
  3449.  
  3450. (Table 0440)
  3451. Values for DESQview/X socket error code:
  3452.  0000h    successful
  3453.  0009h    "BADF" bad file handle
  3454.  000Ch    "ENOMEM" out of memory
  3455.  000Eh    "EFAULT" bad address
  3456.  0016h    "EINVAL" invalid argument
  3457.  0018h    "EMFILE" too many open files
  3458.  0020h    "EPIPE" ??? broken pipe
  3459.  0023h    "EWOULDBLOCK" operation cannot be completed at this time
  3460.  0024h    "EINPROGRESS" operation now in progress
  3461.  0026h    "ENOTSOCK" socket invalid
  3462.  0028h    "EMSGSIZE" message too long to send atomically
  3463.  002Ch    "ESOCKTNOSUPPORT" socket type not supported
  3464.  002Fh    "EAFNOSUPPORT" address family not supp. by protocol fam.
  3465.  0031h    "EDOM" argument too large
  3466.  0038h    "EISCONN" socket is already connected
  3467.  0039h    "ENOTCONN" socket is not connected
  3468.  
  3469. Format of DESQview/X Socket Context Record:
  3470. Offset    Size    Description    (Table 0441)
  3471.  00h    DWORD    pointer to next Socket Context Record, 0000h:0000h if last
  3472.  04h    WORD    SFT index for socket, 00FFh if not connected, FFFFh if detached
  3473.  06h    WORD    PSP segment of owner or 0000h
  3474.  08h    WORD    mapping context of owning window (see #0306 at AX=1016h)
  3475.  0Ah  2 BYTEs    ???
  3476.  0Ch    WORD    address family
  3477.  0Eh    WORD    socket type
  3478.  10h    WORD    protocol
  3479.  12h    WORD    socket state
  3480.         0001h created
  3481.         0002h bound
  3482.         0003h listening???
  3483.         0005h connected
  3484.  14h    DWORD    timer object handle
  3485.  18h    DWORD    object handle (mailbox???)
  3486.  1Ch    DWORD    object handle of parent of above object or 0000h:0000h
  3487.  20h    DWORD    pointer to ??? or 0000h
  3488.  24h  6 BYTEs    ???
  3489.  2Ah    WORD    file handle for socket or FFFFh
  3490.  2Ch  2 BYTEs    ???
  3491.  2Eh    WORD    nonzero if socket nonblocking
  3492. ---network connections only---
  3493.  30h  2 BYTEs    ???
  3494.  32h    WORD    ???
  3495.  34h  4 BYTEs    (big-endian) IP address of remote
  3496.  38h  6 BYTEs    ???
  3497. --------Q-15DE2F-----------------------------
  3498. INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
  3499.     AX = DE2Fh
  3500. Return: BX = status
  3501.         0001h keyboard focus has been given to a direct window since the
  3502.         last call
  3503.         0000h if not
  3504. Notes:    DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  3505.     Quarterdeck stated that this call would not be available under future
  3506.       versions of DESQview Classic, but it is still present in v2.60
  3507. --------Q-15DE30-----------------------------
  3508. INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
  3509.     AX = DE30h
  3510. Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
  3511. Notes:    DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  3512.     you must first check the DESQview version to verify that it is 2.50 or
  3513.       greater
  3514. SeeAlso: INT 21/AH=2Bh/CX=4445h
  3515. --------Q-15DE31-----------------------------
  3516. INT 15 - DESQview/X v1.10 - ???
  3517.     AX = DE31h
  3518.     CX = ???
  3519.         0000h ???
  3520.         nonzero ???
  3521.     ???
  3522. Return: ???
  3523. --------b-15DF-------------------------------
  3524. INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
  3525.     AH = DFh
  3526.     AL = function
  3527.         00h turn on Turbo mode
  3528.         01h turn off Turbo mode
  3529.         02h set Turbo mode according to hardware switch
  3530. SeeAlso: INT 13/AX=FFFFh
  3531. --------b-15E00F-----------------------------
  3532. INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
  3533.     AX = E00Fh
  3534.     ES:BX -> start of 2nd processor's execution
  3535. Return: AL = status
  3536.         0Fh successful
  3537.         00h failure
  3538. SeeAlso: AX=E10Eh,AX=E200h
  3539. --------b-15E10E-----------------------------
  3540. INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
  3541.     AX = E10Eh
  3542.     ES:BX -> start of 2nd processor's execution
  3543. Return: AL = status
  3544.         0Fh successful (halted)
  3545.         00h failure (not halted)
  3546. SeeAlso: AX=E00Fh,AX=E200h
  3547. --------b-15E200-----------------------------
  3548. INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
  3549.     AX = E200h
  3550. Return: AX bit 15 set if 2nd processor available
  3551. SeeAlso: AX=E00Fh,AX=E10Eh
  3552. --------b-15E4-------------------------------
  3553. INT 15 - Tandy??? - ???
  3554.     AH = E4h
  3555.     AL = subfunction
  3556.         21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
  3557.     DL = ???
  3558. Return: DL = 00h if successful???
  3559. Note:    the section of code in 386MAX which calls these functions also checks
  3560.       whether the ROM BIOS has both Tandy and Phoenix Technologies
  3561.       signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
  3562.       support this function, however, returning the usual CF set/AH=86h for
  3563.       "unsupported function".
  3564. --------b-15E4-------------------------------
  3565. INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
  3566.     AH = E4h
  3567.     AL = subfunction
  3568.         00h get ???
  3569.         Return: CF clear
  3570.             AH = 00h
  3571.             CX = 0000h
  3572.             BX = ??? (read from [XBDA:0094h])
  3573.         01h,02h unsupported by this ROM version
  3574.         Return: CF set, AH = 86h
  3575.         80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
  3576.         Return: CF clear
  3577.             AH = 00h
  3578.             CX = 0000h
  3579.             BX = ???
  3580.         81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
  3581.         Return: CF set, AH = 86h
  3582. Notes:    functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
  3583.     these functions are not supported by the 7/26/93 LTE Lite 386 ROM
  3584. --------b-15E800-----------------------------
  3585. INT 15 - Compaq Contura - GET ???
  3586.     AX = E800h
  3587. Return: AX = 0000h
  3588.     BH = 00h
  3589.     BL = ??? (read from port 0C7Ch)
  3590.     CH = ???
  3591.     CL = ???
  3592.     DX = 0000h
  3593. Note:    also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
  3594. --------b-15E800-----------------------------
  3595. INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
  3596.     AX = E800h
  3597.     BX = ??? (0000h)
  3598. Return: CF clear if successful
  3599.         BH = 02h
  3600.         BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
  3601.     CF set on error
  3602.     others???
  3603. Notes:    used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
  3604.       the Enhanced Parallel Port expected by that driver is available
  3605.     used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
  3606.       volume control hardware expected by that driver is available
  3607. --------b-15E800-----------------------------
  3608. INT 15 - Compaq Prolinea - GET ???
  3609.     AX = E800h
  3610.     BX = ??? (1369h)
  3611. Return: BH = 01h
  3612.     BL = ???
  3613.     others???
  3614. Note:    used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
  3615.       the fix that driver applies is required (will not install if BX on
  3616.       return is other than 010Eh or 010Fh)
  3617. --------b-15E801-----------------------------
  3618. INT 15 - Compaq Contura - GET ???
  3619.     AX = E801h
  3620. Return: CF clear
  3621.     AX = extended memory in K (read from CMOS locations 30h and 31h)
  3622.     BH = ???
  3623.     BL = ???
  3624.     CX = extended memory in K (read from CMOS locations 17h and 18h)
  3625.     DX = ???
  3626. Note:    also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
  3627. --------b-15E802-----------------------------
  3628. INT 15 - Compaq Contura - GET ???
  3629.     AX = E802h
  3630. Return: CF clear
  3631.     AX = 0000h
  3632.     BX = ???
  3633.     CX = 0000h
  3634. Note:    this function is also supported by the LTE Lite 25c, 25E, and 486; not
  3635.       supported by LTE Lite 20 and 25.
  3636. --------m-15F200CX454D-----------------------
  3637. INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???
  3638.     AX = F200h
  3639.     CX = 454Dh
  3640. Return: CF clear if hardware already initialised
  3641.         BX = upper RAM areas in use
  3642.         bit 0: C000-C3FF
  3643.         bit 1: C400-C7FF
  3644.         ...
  3645.         bit 11: EC00-EFFF
  3646.     CF set if hardware not initialised yet
  3647. --------B-1600-------------------------------
  3648. INT 16 - KEYBOARD - GET KEYSTROKE
  3649.     AH = 00h
  3650. Return: AH = BIOS scan code
  3651.     AL = ASCII character
  3652. Notes:    on extended keyboards, this function discards any extended keystrokes,
  3653.       returning only when a non-extended keystroke is available
  3654.     the BIOS scan code is usually, but not always, the same as the hardware
  3655.       scan code processed by INT 09.  It is the same for ASCII keystrokes
  3656.       and most unshifted special keys (F-keys, arrow keys, etc.), but
  3657.       differs for shifted special keys.
  3658. SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,INT 18/AH=00h
  3659. --------B-1601-------------------------------
  3660. INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
  3661.     AH = 01h
  3662. Return: ZF set if no keystroke available
  3663.     ZF clear if keystroke available
  3664.         AH = BIOS scan code
  3665.         AL = ASCII character
  3666. Note:    if a keystroke is present, it is not removed from the keyboard buffer;
  3667.       however, any extended keystrokes which are not compatible with 83/84-
  3668.       key keyboards are removed in the process of checking whether a
  3669.       non-extended keystroke is available
  3670. SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
  3671. --------B-1602-------------------------------
  3672. INT 16 - KEYBOARD - GET SHIFT FLAGS
  3673.     AH = 02h
  3674. Return: AL = shift flags (see #0442)
  3675. SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h
  3676.  
  3677. Bitfields for keyboard shift flags:
  3678. Bit(s)    Description    (Table 0442)
  3679.  7    Insert active
  3680.  6    CapsLock active
  3681.  5    NumLock active
  3682.  4    ScrollLock active
  3683.  3    Alt key pressed (either Alt on 101/102-key keyboards)
  3684.  2    Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  3685.  1    left shift key pressed
  3686.  0    right shift key pressed
  3687. SeeAlso: #0447,#2345
  3688. --------B-1603-------------------------------
  3689. INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
  3690.     AH = 03h
  3691.     AL = subfunction
  3692.         00h set default delay and rate (PCjr and some PS/2)
  3693.         01h increase delay before repeat (PCjr)
  3694.         02h decrease repeat rate by factor of 2 (PCjr)
  3695.         03h increase delay and decrease repeat rate (PCjr)
  3696.         04h turn off typematic repeat (PCjr and some PS/2)
  3697.         05h set repeat rate and delay (AT,PS)
  3698.         BH = delay value (00h = 250ms to 03h = 1000ms)
  3699.         BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
  3700.         06h get current typematic rate and delay (newer PS/2s)
  3701.         Return: BL = repeat rate (see above)
  3702.             BH = delay (see above)
  3703. Note:    use INT 16/AH=09h to determine whether some of the subfunctions are
  3704.       supported
  3705. SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
  3706. --------B-1604-------------------------------
  3707. INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
  3708.     AH = 04h
  3709.     AL = keyclick state
  3710.         00h off
  3711.         01h on
  3712. SeeAlso: AH=03h
  3713. --------B-1605-------------------------------
  3714. INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
  3715.     AH = 05h
  3716.     CH = scan code
  3717.     CL = ASCII character
  3718. Return: AL = 00h if successful
  3719.          01h if keyboard buffer full
  3720. Notes:    under DESQview, a number of "keystrokes" invoke specific
  3721.       DESQview-related actions when they are read from the keyboard
  3722.       buffer (see #0443)
  3723.     similarly, some "keystrokes" invoke special functions on the HP 100LX
  3724.       and HP 200LX (see #0444)
  3725. SeeAlso: AH=00h,AH=25h"K3",AH=71h,AH=FFh,INT 15/AX=DE10h
  3726.  
  3727. (Table 0443)
  3728. Values for pseudo-keystrokes for DESQview:
  3729.  38FBh or FB00h    switch to next window (only if main menu already popped up)
  3730.  38FCh or FC00h    pop up DESQview main menu
  3731.  38FEh or FE00h    close the current window
  3732.  38FFh or FF00h    pop up DESQview learn menu
  3733.  
  3734. (Table 0444)
  3735. Values for pseudo-keystrokes for HP 100LX/200LX:
  3736.  EE00h    pop up topcard display and set other system manager applications
  3737.       into sleep mode
  3738. --------B-1605-------------------------------
  3739. INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
  3740.     AH = 05h
  3741.     AL = function
  3742.         01h set keyboard layout to French
  3743.         02h set keyboard layout to German
  3744.         03h set keyboard layout to Italian
  3745.         04h set keyboard layout to Spanish
  3746.         05h set keyboard layout to UK
  3747.         80h check if function supported
  3748.         Return: AL <> 80h if supported
  3749. Return: ???
  3750. Note:    this function is called by the DOS 3.2 KEYBxx.COM
  3751. SeeAlso: AH=92h,AH=A2h
  3752. --------B-1609-------------------------------
  3753. INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
  3754.     AH = 09h
  3755. Return: AL = supported keyboard functions (see #0445)
  3756. Notes:    this function is only available if bit 6 of the second feature byte
  3757.       returned by INT 15/AH=C0h is set (see #0383)
  3758.     reportedly, the Award Modular BIOS v4.50G returns the keyboard function
  3759.       flags in AH instead of AL, and provides this function even though
  3760.       its availability is not indicated by INT 15/AH=C0h
  3761. SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
  3762.  
  3763. Bitfields for supported keyboard functions:
  3764. Bit(s)    Description    (Table 0445)
  3765.  7    reserved
  3766.  6    INT 16/AH=20h-22h supported (122-key keyboard support)
  3767.  5    INT 16/AH=10h-12h supported (enhanced keyboard support)
  3768.  4    INT 16/AH=0Ah supported
  3769.  3    INT 16/AX=0306h supported
  3770.  2    INT 16/AX=0305h supported
  3771.  1    INT 16/AX=0304h supported
  3772.  0    INT 16/AX=0300h supported
  3773. SeeAlso: #0385
  3774. --------B-160A-------------------------------
  3775. INT 16 - KEYBOARD - GET KEYBOARD ID
  3776.     AH = 0Ah
  3777. Return: BX = keyboard ID (see #0446)
  3778. Note:    check return value from AH=09h to determine whether this function is
  3779.       supported
  3780. SeeAlso: AH=09h
  3781.  
  3782. (Table 0446)
  3783. Values for keyboard ID:
  3784.  0000h    no keyboard attached
  3785.  41ABh    Japanese "G" keyboard (translate mode)
  3786.  54ABh    Japanese "P" keyboard (translate mode)
  3787.  83ABh    Japanese "G" keyboard (pass-through mode)
  3788.  84ABh    Japanese "P" keyboard (pass-through mode)
  3789.  90ABh    old Japanese "G" keyboard
  3790.  91ABh    old Japanese "P" keyboard
  3791.  92ABh    old Japanese "A" keyboard
  3792. --------B-1610-------------------------------
  3793. INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
  3794.     AH = 10h
  3795. Return: AH = BIOS scan code
  3796.     AL = ASCII character
  3797. Notes:    if no keystroke is available, this function waits until one is placed
  3798.       in the keyboard buffer
  3799.     the BIOS scan code is usually, but not always, the same as the hardware
  3800.       scan code processed by INT 09.  It is the same for ASCII keystrokes
  3801.       and most unshifted special keys (F-keys, arrow keys, etc.), but
  3802.       differs for shifted special keys.
  3803.     unlike AH=00h, this function does not discard extended keystrokes
  3804.     INT 16/AH=09h can be used to determine whether this function is
  3805.       supported, but only on later model PS/2s
  3806. SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h
  3807. --------B-1611-------------------------------
  3808. INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
  3809.     AH = 11h
  3810. Return: ZF set if no keystroke available
  3811.     ZF clear if keystroke available
  3812.         AH = BIOS scan code
  3813.         AL = ASCII character
  3814. Notes:    if a keystroke is available, it is not removed from the keyboard buffer
  3815.     unlike AH=01h, this function does not discard extended keystrokes
  3816.     some versions of the IBM BIOS Technical Reference erroneously report
  3817.       that CF is returned instead of ZF
  3818.     INT 16/AH=09h can be used to determine whether this function is
  3819.       supported, but only on later model PS/2s
  3820. SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h
  3821. --------B-1612-------------------------------
  3822. INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
  3823.     AH = 12h
  3824. Return: AL = shift flags 1 (same as returned by AH=02h) (see #0447)
  3825.     AH = shift flags 2 (see #0448)
  3826. Notes:    AL bit 3 set only for left Alt key on many machines
  3827.     AH bits 7 through 4 always clear on a Compaq SLT/286
  3828.     INT 16/AH=09h can be used to determine whether this function is
  3829.       supported, but only on later model PS/2s
  3830. SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh
  3831.  
  3832. Bitfields for keyboard shift flags 1:
  3833. Bit(s)    Description    (Table 0447)
  3834.  7    Insert active
  3835.  6    CapsLock active
  3836.  5    NumLock active
  3837.  4    ScrollLock active
  3838.  3    Alt key pressed (either Alt on 101/102-key keyboards)
  3839.  2    Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  3840.  1    left shift key pressed
  3841.  0    right shift key pressed
  3842. SeeAlso: #0442,#0448
  3843.  
  3844. Bitfields for keyboard shift flags 2:
  3845. Bit(s)    Description    (Table 0448)
  3846.  7    SysReq key pressed (SysReq is often labeled SysRq)
  3847.  6    CapsLock pressed
  3848.  5    NumLock pressed
  3849.  4    ScrollLock pressed
  3850.  3    right Alt key pressed
  3851.  2    right Ctrl key pressed
  3852.  1    left Alt key pressed
  3853.  0    left Ctrl key pressed
  3854. SeeAlso: #0447
  3855. --------J-1613-------------------------------
  3856. INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
  3857.     AH = 13h
  3858.     AL = function
  3859.         00h set shift status
  3860.         DX = shift status (see #0449), must preserve internal status
  3861.               bits
  3862.         01h get shift status
  3863.         Return: DX = current shift status (see #0449)
  3864. Note:    these functions are supplied by the Japanese Front-End Processor
  3865. SeeAlso: AH=14h,INT 21/AX=6301h
  3866.  
  3867. Bitfields for DOS/V shift status:
  3868. Bit(s)    Description    (Table 0449)
  3869.  0    full-size rather than half-size
  3870.  2-1    character input mode
  3871.     00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
  3872.  5-3    internal status
  3873.  6    Romaji enabled
  3874.  7    Katakana to Kanji conversion enabled
  3875.  15-8    internal status
  3876. --------J-1614-------------------------------
  3877. INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
  3878.     AH = 14h
  3879.     AL = function
  3880.         00h enable display
  3881.         01h disable display
  3882.         02h get display state
  3883.         Return: AL = current state (00h enabled, 01h disabled)
  3884. Desc:    control the screen-bottom shift status row(s) for the Japanese
  3885.       Front-End Processor
  3886. SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
  3887. --------B-1620-------------------------------
  3888. INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
  3889.     AH = 20h
  3890. Return: AH = BIOS scan code (see AH=10h for details)
  3891.     AL = ASCII character
  3892. Note:    use AH=09h to determine whether this function is supported
  3893. SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
  3894. --------b-1620------------------------------------
  3895. INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
  3896.     AH = 20h
  3897.     AL = shift status (see #0450)
  3898. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  3899.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  3900.     the user can override the specified settings by pressing the keys
  3901.  
  3902. Bitfields for HUNTER 16 shift status:
  3903. Bit(s)    Description    (Table 0450)
  3904.  4    Scroll Lock on
  3905.  5    Num Lock on
  3906.  6    Caps Lock on
  3907. --------K-1620-------------------------------
  3908. INT 16 O - K3 v1.5+, K3PLUS v5.0+ - GET EXTENDED BUFFER STATE
  3909.     AH = 20h
  3910. Return: AX = K3 version
  3911.     ES:BX -> extended keyboard buffer start
  3912.     ES:DX -> extended keyboard buffer end
  3913.     ES:SI -> next keystroke
  3914.     ES:DI -> last keystroke in buffer
  3915.     CX = number of keystrokes in buffer
  3916. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  3917.       K3 extended German keyboard driver by Martin Gerdes published in c't
  3918.       magazine in 1988
  3919. Note:    this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
  3920.       instead
  3921. SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h
  3922. --------B-1621-------------------------------
  3923. INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
  3924.     AH = 21h
  3925. Return: ZF set if no keystroke available
  3926.     ZF clear if keystroke available
  3927.         AH = BIOS scan code
  3928.         AL = ASCII character
  3929. Notes:    use AH=09h to determine whether this function is supported
  3930.     some versions of the IBM BIOS Technical Reference erroneously report
  3931.       that CF is returned instead of ZF
  3932. SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
  3933. --------b-1621------------------------------------
  3934. INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
  3935.     AH = 21h
  3936.     AL = shift keys to control (see #0442)
  3937.     BL = shift state for disabled keys
  3938. Note:    If a bit in AL is set the key is disabled and set to the state of the
  3939.       corresponding bit in BL
  3940. SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
  3941. --------B-1622-------------------------------
  3942. INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
  3943.     AH = 22h
  3944. Return: AL = shift flags 1 (see #0447)
  3945.     AH = shift flags 2 (see #0448)
  3946. Note:    use AH=09h to determine whether this function is supported
  3947. SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
  3948. --------b-1622------------------------------------
  3949. INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
  3950.     AH = 22h
  3951.     AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
  3952.     BX = 0708h
  3953.     CX = 0910h
  3954.     DX = 1112h
  3955. Return: AL = 00h if successful
  3956. SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
  3957. --------b-1623------------------------------------
  3958. INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
  3959.     AH = 23h
  3960.     AL = new state of breakout (00h enabled, nonzero disabled)
  3961.     BX = 0708h   
  3962.     CX = 0910h
  3963.     DX = 1112h
  3964. Return: AL = 00h if successful
  3965. Desc:    Enables or disables the emergency breakout feature, where the
  3966.       Hunter 16 at power on checks whether the X and P keys are pressed.
  3967.       If so the machine will boot rather than continue the running program
  3968. SeeAlso: AH=22h"HUNTER"
  3969. --------b-1624------------------------------------
  3970. INT 16 - HUNTER 16 - REDEFINE KEY CODES
  3971.     AH = 24h
  3972.     AL = Matrix Code (see #0451)
  3973.     BL = new Key code
  3974. Return: AL = status (00h successful, nonzero failed)
  3975. SeeAlso: AH=2Bh,AH=2Ch
  3976.  
  3977. (Table 0451)
  3978. Values for HUNTER 16 Matrix Code:
  3979.  Code  Key        Code    Key        Code    Key
  3980.  00h   Esc key        1Eh    Space        3Bh    L
  3981.  01h   1        21h    0        3Ch    ,
  3982.  02h   Q        22h    -        3Eh    Right shift
  3983.  03h   Tab        23h    '        42h    8
  3984.  04h   Num Lock        24h    Keypad 4    43h    7
  3985.  05h   \        25h    Enter        44h    U
  3986.  08h   LShift        26h    Keypad 7    45h    I
  3987.  09h   Ctrl        27h    .        46h    J
  3988.  0Ah   "Paw" key    28h    Keypad 1    47h    K
  3989.  0Bh   2        29h    Keypad 0    48h    M
  3990.  0Ch   W        2Ch    =        49h    N 
  3991.  0Dh   A        2Dh    Backspace    4Ah    /
  3992.  0Eh   S        2Eh    Keypad 8    4Dh    6
  3993.  0Fh   Z        2Fh    Keypad 9    4Eh    5
  3994.  11h   Alt        30h    Keypad 5    4Fh    T
  3995.  16h   4        31h    Keypad 6    50h    Y
  3996.  17h   3        32h    Keypad 2    51h    G
  3997.  18h   E        33h    Keypad 3    52h    H
  3998.  19h   R        34h    Keypad .    53h    B
  3999.  1Ah   D        37h    9        54h    V
  4000.  1Bh   F        38h    O        55h    #
  4001.  1Ch   X        39h    P        58h    Pwr
  4002.  1Dh   C        3Ah    ;        59h    Shift Pwr
  4003. --------b-1625------------------------------------
  4004. INT 16 - HUNTER 16 - RESET KEYBOARD
  4005.     AH = 25h
  4006. Return: AL = 00h
  4007. Desc:    restores the standard keyboard layout after any remapping
  4008. SeeAlso: AH=24h,AH=2Bh,AH=2Ch
  4009. --------K-1625-------------------------------
  4010. INT 16 O - K3 v1.5+, K3PLUS v5.0+ - COPY INTO EXTENDED BUFFER
  4011.     AH = 25h
  4012.     CX = number of keystrokes to copy
  4013.     ES:SI -> buffer containing keystrokes
  4014. Return: CF clear if successful
  4015.     CF set on error (i.e. buffer full)
  4016.         CX = number of keystrokes NOT transferred
  4017.         ES:SI -> first keystroke not transferred
  4018. Note:    this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
  4019.       instead
  4020. SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h
  4021. --------b-1626------------------------------------
  4022. INT 16 - HUNTER 16 - CONTROL KEYCLICK
  4023.     AH = 26h
  4024.     AL = new state of keyclicks (00h disabled, 01h enabled)
  4025. Return: AL = 00h
  4026. SeeAlso: AH=2Ah
  4027. --------b-1627------------------------------------
  4028. INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
  4029.     AH = 27h
  4030.     AL = what to dump
  4031.         00h whole (virtual) window
  4032.         01h LCD window only
  4033. Return: AL = 00h
  4034. Desc:    control whether printscren dumps the whole 80x25 screen or only the
  4035.       part displayed in the LCD window
  4036. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  4037.       a 640x200 virtual screen
  4038. --------b-1629------------------------------------
  4039. INT 16 - HUNTER 16 - GET KEY REPEAT
  4040.     AH = 29h
  4041. Return: BL = Typematic rate (characters per second) (see #0452)
  4042.     BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
  4043. SeeAlso: AH=03h,AH=2Ah
  4044.  
  4045. (Table 0452)
  4046. Values for HUNTER 16 Typematic rate:
  4047.  00h    30.0     08h    15.0     10h    7.5     18h    3.7
  4048.  01h    26.7     09h    13.3     11h    6.7     19h    3.3
  4049.  02h    24.0     0Ah    12.0     12h    6.0     1Ah    3.0
  4050.  03h    21.8     0Bh    10.9     13h    5.5     1Bh    2.7
  4051.  04h    20.0     0Ch    10.0     14h    5.0     1Ch    2.5
  4052.  05h    18.5     0Dh     9.2     15h    4.6     1Dh    2.3
  4053.  06h    17.1     0Eh     8.6     16h    4.3     1Eh    2.1
  4054.  07h    16.0     0Fh     8.0     17h    4.0     1Fh    2.0
  4055. SeeAlso: AH=2Ah
  4056. --------b-162A------------------------------------
  4057. INT 16 - HUNTER 16 - CONTROL KEY REPEAT
  4058.     AH = 2Ah
  4059.     AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
  4060. SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
  4061. --------b-162B------------------------------------
  4062. INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
  4063.     AH = 2Bh
  4064.     AL = which key table to redefine
  4065.         00h unshifted
  4066.         01h shifted
  4067.         02h Numlock
  4068.     BH = standard scan code of key (00h-80h)
  4069.     BL = new scan code
  4070. Desc:    redefine the generated scan code from BH to BL
  4071. SeeAlso: AH=24h,AH=2Ah,AH=2Ch
  4072. --------b-162C------------------------------------
  4073. INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
  4074.     AH = 2Ch
  4075.     AL = Matrix code of key (see AH=29h)
  4076.     BL = new key code
  4077. Return: AL = status (00h success, nonzero failed)
  4078. Desc:    redefine the key code generated by holding the PAW key down and
  4079.       pressing the key in AL
  4080. SeeAlso: AH=24h,AH=2Bh
  4081. --------b-162D------------------------------------
  4082. INT 16 - HUNTER 16 - CONTROL BREAK KEYS
  4083.     AH = 2Dh
  4084.     AL = enabled break keys
  4085.         bit 0 Ctrl-C
  4086.         bit 1 Ctrl-Break
  4087.     BX = 0708h
  4088.     CX = 0910h
  4089.     DX = 1112h
  4090. Return: AL = status (00h success, FFh failed)
  4091. SeeAlso: AH=21h"HUNTER"
  4092. --------U-163577-----------------------------
  4093. INT 16 U - TextWare TWTSR - API
  4094.     AX = 3577h
  4095.     CX = function
  4096.         00CBh ???
  4097.         Return: AX = 0000h
  4098.             BX = 0000h
  4099.             DX:CX -> ???
  4100.         00CCh uninstall
  4101.         Return: AX = status
  4102.                 0000h successful
  4103.                 FFFDh unable to unload because vectors taken
  4104.         00CDh ???
  4105.         Return: AX = 0000h
  4106.             BX = 0000h
  4107.             DX:CX -> ???
  4108.         other
  4109.         Return: AX = 5345h ('SE')
  4110. Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
  4111.       popped up via hotkey
  4112. SeeAlso: AX=D724h
  4113. --------U-164252-----------------------------
  4114. INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
  4115.     AX = 4252h
  4116. Return: AX = 5242h if installed
  4117. Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
  4118.       PC Magazine utility CAPTURE written by Tom Kihlken
  4119. SeeAlso: AX=4253h,AX=4254h
  4120. --------U-164253-----------------------------
  4121. INT 16 - TEXTCAP 2.0 - UNINSTALL
  4122.     AX = 4253h
  4123. Return: AX = segment of resident code
  4124. Notes:    the uninstall code does not check whether interrupt vectors have been
  4125.       chained by other programs
  4126.     the caller must free the main memory block (using the returned segment)
  4127. SeeAlso: AX=4252h,AX=4254h
  4128. --------U-164254-----------------------------
  4129. INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
  4130.     AX = 4254h
  4131. Return: AX = status
  4132.         4254h if screen dump will be written as soon as disk becomes idle
  4133.         5442h if screen dump written
  4134. SeeAlso: AX=4252h,AX=4253h
  4135. --------e-164500-----------------------------
  4136. INT 16 - Shamrock Software EMAIL - GET STATUS
  4137.     AX = 4500h
  4138.     DL = port number (01h = COM1)
  4139.     ES:BX -> 13-byte buffer for ASCIZ name
  4140. Return: AX = 4D00h if EMAIL installed on specified port
  4141.         ES:BX -> "" if no connection
  4142.           -> "*" if connection but caller has not identified name
  4143.           -> name otherwise
  4144.         CX = version (CH = major, CL = minor)
  4145.         DL = privilege level of user (00h = guest)
  4146.         DH = chosen language (00h German, 01h English)
  4147. SeeAlso: AX=4501h,AX=4502h
  4148. --------e-164501-----------------------------
  4149. INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
  4150.     AX = 4501h
  4151.     DL = port number (01h = COM1)
  4152. Return: AX = 4D00h if EMAIL installed on specified port
  4153.         BX = maximum connect time in clock ticks
  4154.         CX = maximum connect time for guests (without name) in clock ticks
  4155.         DX = elapsed connect time of current user in clock ticks
  4156. SeeAlso: AX=4500h
  4157. --------e-164502-----------------------------
  4158. INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
  4159.     AX = 4502h
  4160.     DL = port number (01h = COM1)
  4161. Return: AX = 4D00h if EMAIL installed on specified port
  4162.         BL = current value of serial port's Line Control Register
  4163.         BH = flags (see #0453)
  4164.         CX = selected country code (33 = France, 49 = Germany, etc)
  4165.         DX = baudrate divisor (115200/DX = baudrate)
  4166. SeeAlso: AX=4500h
  4167.  
  4168. Bitfields for Shamrock Software EMAIL flags:
  4169. Bit(s)    Description    (Table 0453)
  4170.  0    ISO code
  4171.  1    pause
  4172.  2    linefeed
  4173.  3    ANSI sequences
  4174. --------e-164503-----------------------------
  4175. INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
  4176.     AX = 4503h
  4177.     DL = port number (01h = COM1)
  4178.     DH = maximum execution time in clock ticks (00h = 5 seconds)
  4179.     ES:BX -> ASCIZ string with new user command-word
  4180. Return: AX = 4D00h if EMAIL installed on specified port
  4181. Notes:    a single user command (consisting of only uppercase letters and digits)
  4182.       may be defined, and remains valid until it is overwritten or the
  4183.       EMAIL program terminates; the user command must be activated by
  4184.       calling AX=4504h at least once.
  4185.     an existing command word may be redefined with this function
  4186. SeeAlso: AX=4504h,AX=4505h
  4187. --------e-164504-----------------------------
  4188. INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
  4189.     AX = 4504h
  4190.     DL = port number (01h = COM1)
  4191.     ES:BX -> 80-byte buffer for ASCIZ user input line
  4192. Return: AX = 4D00h if EMAIL installed on specified port
  4193.         DL = flags
  4194.         bit 0: user function supported (always set)
  4195.         bit 1: user entered user-function command word
  4196.         if DL bit 1 set,
  4197.         ES:BX buffer contains line entered by user which begins with
  4198.             the defined command word and has been converted to all
  4199.             caps
  4200. Note:    caller must process the returned commandline and invoke AX=4505h
  4201.       within five seconds with the result of that processing
  4202. SeeAlso: AX=4503h,AX=4505h
  4203. --------e-164505-----------------------------
  4204. INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
  4205.     AX = 4505h
  4206.     DL = port number (01h = COM1)
  4207.     DH = error flag
  4208.         bit 3: set on error
  4209.     ES:BX -> ASCIZ text to return to user, max 1024 bytes
  4210. Return: AH = 4Dh if EMAIL installed on specified port
  4211.     AL = status
  4212.         00h successful
  4213.         02h unable to perform function (timeout, prev call not complete)
  4214.         other error
  4215. Notes:    if the error flag in DH is set, the string is not sent and an error
  4216.       message is generated instead; if this function is not called within
  4217.       five seconds of AX=4504h, EMAIL automatically generates an error
  4218.       message
  4219.     the string is copied into an internal buffer, allowing this function's
  4220.       caller to continue immediately
  4221. SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
  4222. --------e-164506-----------------------------
  4223. INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
  4224.     AX = 4506h
  4225.     DL = port number (01h = COM1)
  4226.     ES:BX -> 13-byte buffer for ASCIZ filename
  4227. Return: AX = 4D00h if EMAIL installed on specified port
  4228.         DH = Xmodem status
  4229.         00h no XGET command given
  4230.         01h XGET in progress
  4231.         02h XGET completed successfully
  4232.         ES:BX buffer filled with last filename given to XGET command
  4233.         (without path)
  4234. Note:    DH=02h will only be returned once per XGET; subsequent calls will
  4235.       return DH=00h
  4236. SeeAlso: AX=4500h,INT 17/AX=2408h
  4237. --------K-164D4F-----------------------------
  4238. INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
  4239.     AX = 4D4Fh
  4240. Return: AX = 6F6Dh if installed
  4241.         ES = segment of resident code
  4242. Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
  4243. SeeAlso: INT 10/AX=1130h/BX=4D4Fh
  4244. --------J-165000-----------------------------
  4245. INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
  4246.     AX = 5000h
  4247.     BX = country code
  4248.         0001h USA (English), 0051h Japan
  4249. Return: AL = status
  4250.         00h successful
  4251.         01h bad country code
  4252.         02h other error
  4253. SeeAlso: AX=5001h,INT 10/AX=5000h,INT 17/AX=5000h
  4254. --------J-165001-----------------------------
  4255. INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
  4256.     AX = 5001h
  4257. Return: AL = status
  4258.         00h successful
  4259.         BX = country code
  4260.         02h error
  4261. SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
  4262. --------J-1651-------------------------------
  4263. INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
  4264.     AH = 51h
  4265. Return: AL = standard shift key states (see #0442,#0447)
  4266.     AH = Kana lock (00h off, 01h on)
  4267. SeeAlso: AH=02h,AH=12h,AH=22h
  4268. --------t-165453BX5242-----------------------
  4269. INT 16 - TSRBONES - INSTALLATION CHECK
  4270.     AX = 5453h ('TS')
  4271.     BX = 5242h ('RB')
  4272.     CX = 4F4Eh ('ON')
  4273.     DX = 4553h ('ES')
  4274. Return: AX = 4553h if installed
  4275.     BX = 4F4Eh if installed
  4276.     CX = 5242h if installed
  4277.     DX = 5453h if installed
  4278. Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
  4279. Note:    these values are the default as the TSRBONES package is distributed,
  4280.       but will normally be changed when implementing an actual TSR with
  4281.       the TSRBONES skeleton
  4282. SeeAlso: INT 2D"AMIS"
  4283. --------A-165500-----------------------------
  4284. INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
  4285.     AX = 5500h
  4286. Return: AX = 4D53h ('MS') if keyboard TSR present
  4287. Notes:    during startup, Microsoft Word tries to communicate with any TSRs
  4288.       that are present through this call.
  4289.     if the return is not 4D53h, Word installs its own INT 09 and INT 16
  4290.       handlers; otherwise it assumes that the TSR will handle the keyboard
  4291. SeeAlso: AX=55FFh,INT 1A/AX=3601h
  4292. --------A-1655FE-----------------------------
  4293. INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
  4294.     AX = 55FEh
  4295.     DX = function
  4296.         0000h initialize
  4297.         ES:BX -> ??? function
  4298.         ES:CX -> ??? structure
  4299.         FFFFh shutdown/reset
  4300. Return: AX = result
  4301.         4D4Bh only the INT 1B handler will be installed.
  4302.         other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C
  4303.           are installed
  4304. Notes:    The pointer in ES:CX seems to point at a structure defining a callback
  4305.       function when new keyboard keys are pressed. If a TSR returns
  4306.       AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
  4307.     these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit,
  4308.       and before/after shelling out
  4309.     since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs
  4310.       will also cause this interface to be invoked
  4311. SeeAlso: INT 16/AX=5500h,INT 1A/AX=3601h
  4312. --------U-1655FF-----------------------------
  4313. INT 16 C - Microsoft Word - TSR COOPERATION???
  4314.     AX = 55FFh
  4315.     BX >= 0004h (version of Microsoft Word [BL = major] ???)
  4316.     CX = function
  4317.         0000h set ??? flag
  4318.         other clear ??? flag
  4319. Notes:    hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j,
  4320.       distributed with PC Tools v7, as well as the Trusted Access
  4321.       SCRNBLNK.COM; this may be part of the standard TesSeRact library
  4322.     known to be called by the German edition of Microsoft Word 5.0
  4323. SeeAlso: AX=5500h,INT 2F/AX=5453h
  4324. --------c-165758BX4858-----------------------
  4325. INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
  4326.     AX = 5758h
  4327.     BX = 4858h ('HX')
  4328.     DX = 4443h ('DC')
  4329.     CX <> 5758h
  4330. Return: BX = 6878h if installed
  4331.     CX = 6463h if installed
  4332.         AX = code segment of TSR
  4333.         CX = internal version??? (v3.00 returns 0100h)
  4334. Program: CACHECLK is a "cloaked" disk cache included with Netroom
  4335. Notes:    if CX=5758h on entry, CACHECLK returns with all registers unchanged
  4336.     the cache statistics are located early in the segment pointed at by
  4337.       AX on return
  4338. SeeAlso: INT 2F/AX=5758h
  4339. ----------165758BX5754-----------------------
  4340. INT 16 U - Netroom ??? - ???
  4341.     AX = 5758h
  4342.     BX = 5754h
  4343.     ???
  4344. Return: ???
  4345. ----------165758BX5755-----------------------
  4346. INT 16 U - Netroom ??? - ???
  4347.     AX = 5758h
  4348.     BX = 5755h
  4349.     DS:SI -> ???
  4350. Return: ???
  4351. ----------165758BX5756-----------------------
  4352. INT 16 U - Netroom ??? - INSTALLATION CHECK
  4353.     AX = 5758h
  4354.     BX = 5756h
  4355. Return: BX <> 5756h if installed
  4356. --------m-165758BX5858-----------------------
  4357. INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
  4358.     AX = 5758h
  4359.     BX = 5858h
  4360. Return: CF clear
  4361.     DX:BX -> saved copy of interrupt vector table
  4362. Note:    the installation check consists of calling this function and comparing
  4363.       BX against 5858h on return; if it has changed, PRENET is installed
  4364. SeeAlso: AX=5758h/BX=5859h
  4365. Index:    installation check;Netroom PRENET
  4366. --------m-165758BX5859-----------------------
  4367. INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
  4368.     AX = 5758h
  4369.     BX = 5859h
  4370. Return: CF clear
  4371.     DX:BX -> saved copy of interrupt vector table
  4372. Note:    the installation check consists of calling this function and comparing
  4373.       BX against 5859h on return; if it has changed, POSTNET is installed
  4374. SeeAlso: AX=5758h/BX=5858h
  4375. Index:    installation check;Netroom POSTNET
  4376. --------U-166969BX6968-----------------------
  4377. INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
  4378.     AX = 6969h
  4379.     BX = 6968h
  4380. Return: resident code unhooked, but not removed from memory
  4381. Index:    uninstall;BACKTALK
  4382. --------U-166969BX6969-----------------------
  4383. INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
  4384.     AX = 6969h
  4385.     BX = 6969h
  4386.     DX = 0000h
  4387. Return: DX nonzero if installed
  4388.         BX = CS of resident code
  4389.         DX = PSP segment of resident code
  4390.         DS:SI -> ASCIZ identification string "CPoint Talk"
  4391. --------i-166A6B-----------------------------
  4392. INT 16 U - FastJuice - DISABLE/UNLOAD???
  4393.     AX = 6A6Bh
  4394. Return: ???
  4395. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  4396. SeeAlso: AX=7463h
  4397. Index:    uninstall;FastJuice
  4398. --------G-166C63-----------------------------
  4399. INT 16 U - TMED v1.6a - INSTALLATION CHECK
  4400.     AX = 6C63h ('lc')
  4401. Return: AX = 4C43h ('LC') if installed
  4402. Program: TMED is a freeware resident memory editor by Liang Chen
  4403. --------b-166F00-----------------------------
  4404. INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
  4405.     AX = 6F00h
  4406.     BX <> 4850h (usually set to 0000h for simplicity)
  4407. Return: BX = 4850h ("HP") if present
  4408. Notes:    called by recent MS Mouse drivers looking for an HP-HIL mouse
  4409.     supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4410. SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
  4411. SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  4412. SeeAlso: INT 6F/AH=00h"HP Vectra"
  4413. --------b-166F01-----------------------------
  4414. INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
  4415.     AX = 6F01h
  4416. Return: AH = 00h (successful)
  4417.     CX = 0004h (size of returned buffer)
  4418.     ES:SI -> buffer for typematic info (see #0454)
  4419. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4420. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  4421.  
  4422. Format of HP Vectra EX-BIOS typematic info:
  4423. Offset    Size    Description    (Table 0454)
  4424.  00h    BYTE    delay before repeat for all non-Cursor Control Pad keys
  4425.         (see #0455)
  4426.  01h    BYTE    typematic rate for all non-Cursor Control Pad keys (see #0456)
  4427.  02h    BYTE    delay before repeat for Cursor Control Pad keys    (see #0457)
  4428.  03h    BYTE    typematic rate for Cursor Control Pad keys (see #0456)
  4429.  
  4430. (Table 0455)
  4431. Values for HP Vectra EX-BIOS non-CCP delay time:
  4432.  00h    17 ms
  4433.  01h    150 ms
  4434.  02h    283 ms
  4435.  03h    417 ms
  4436.  04h    550 ms
  4437.  05h    683 ms
  4438.  06h    817 ms
  4439.  07h    950 ms
  4440.  08h    1083 ms
  4441.  09h    1217 ms
  4442.  0Ah    1350 ms
  4443.  0Bh    1483 ms
  4444.  0Ch    1617 ms
  4445.  0Dh    1750 ms
  4446.  0Eh    1883 ms
  4447.  0Fh    2017 ms
  4448. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  4449.       double the times if set to 30 Hz
  4450. SeeAlso: #0454,#0456,#0457
  4451.  
  4452. (Table 0456)
  4453. Values for HP Vectra EX-BIOS typematic rate:
  4454.  00h    60 / sec
  4455.  01h    30 / sec
  4456.  02h    20
  4457.  03h    15
  4458.  04h    12
  4459.  05h    10
  4460.  06h    8.57
  4461.  07h    7.5
  4462.  08h    6.66
  4463.  09h    6 / sec
  4464.  0Ah    5.45
  4465.  0Bh    5
  4466.  0Ch    4.62
  4467.  0Dh    4.28
  4468.  0Eh    4 / sec
  4469.  0Fh    typematic disabled
  4470. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  4471.       halve the rates if set to 30 Hz
  4472. SeeAlso: #0455,#0457
  4473.  
  4474. (Table 0457)
  4475. Values for HP Vectra EX-BIOS CCP delay time:
  4476.  00h    17 ms
  4477.  01h    83 ms
  4478.  02h    150 ms
  4479.  03h    217 ms
  4480.  04h    283 ms
  4481.  05h    350 ms
  4482.  06h    417 ms
  4483.  07h    483 ms
  4484.  08h    550 ms
  4485.  09h    617 ms
  4486.  0Ah    683 ms
  4487.  0Bh    750 ms
  4488.  0Ch    817 ms
  4489.  0Dh    883 ms
  4490.  0Eh    950 ms
  4491.  0Fh    1017 ms
  4492. Note:    the above values assume that the key repeat rate has been set to 60 Hz;
  4493.       double the times if set to 30 Hz
  4494. SeeAlso: #0455,#0456
  4495. --------b-166F02-----------------------------
  4496. INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
  4497.     AX = 6F02h
  4498. Return: AH = 00h (successful)
  4499.     CX = 0004h (size of returned buffer)
  4500.     ES:SI -> buffer for typematic info (see #0454)
  4501. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4502. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  4503. SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
  4504. --------b-166F03-----------------------------
  4505. INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
  4506.     AX = 6F03h
  4507.     ES:SI -> buffer containing typematic info (see #0454)
  4508. Return: AH = 00h (successful)
  4509. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4510. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  4511. SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
  4512. --------b-166F04-----------------------------
  4513. INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
  4514.     AX = 6F04h
  4515.     ES:SI -> mapping buffer (see #0458)
  4516. Return: AH = 00h (successful)
  4517.     CX = 001Eh (number of bytes in buffer)
  4518.     ES:SI buffer filled
  4519. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4520.     the HIL input system translates the HIL keyboard events to simulate
  4521.       an IBM-compatible keyboard; the translation can be altered
  4522.       dynamically by applications
  4523. SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
  4524.  
  4525. Format of HP Vectra EX-BIOS keyboard mapping info:
  4526. Offset    Size    Description    (Table 0458)
  4527.  00h  3 WORDs    entry for V_QWERTY driver (IP, CS, DS)
  4528.  06h  3 WORDs    entry for V_SOFTKEY driver (IP, CS, DS)
  4529.  0Ch  3 WORDs    entry for V_FUNCTION driver
  4530.  12h  3 WORDs    entry for V_NUMPAD driver
  4531.  18h  3 WORDs    entry for V_CCP driver
  4532. --------b-166F05-----------------------------
  4533. INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
  4534.     AX = 6F05h
  4535.     ES:SI -> mapping buffer (see #0458)
  4536. Return: AH = 00h (successful)
  4537.     CX = 001Eh (number of bytes in buffer)
  4538.     ES:SI buffer filled
  4539. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4540. SeeAlso: AX=6F04h,AX=6F06h
  4541. --------b-166F06-----------------------------
  4542. INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
  4543.     AX = 6F06h
  4544.     CX = number of bytes in buffer (001Eh)
  4545.     ES:SI -> mapping buffer (see #0458)
  4546. Return: AH = 00h (successful)
  4547. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4548.     any application which modifies the key mappings should restore them
  4549.       before terminating
  4550.     drivers installed with this function are assured of 32 bytes of stack
  4551.       space when they are invoked
  4552. SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
  4553. --------b-166F07-----------------------------
  4554. INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
  4555.     AX = 6F07h
  4556.     BL = translation to set (see #0459)
  4557. Return: AH = 00h (successful)
  4558. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4559.     this function may no longer work properly if the application has
  4560.       modified the key mappings with AX=6F06h
  4561. SeeAlso: AX=6F06h,AX=6F09h
  4562.  
  4563. (Table 0459)
  4564. Values for HP Vectra keyboard translation specifier:
  4565.  00h    map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
  4566.  01h    map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
  4567.  02h    map V_CCP to V_OFF, disabling the cursor pad
  4568.  03h    map V_CCP to V_CCPGID, converting cursor pad keys to GID data
  4569.  04h    map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
  4570.  05h    map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
  4571.  06h    map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
  4572.  07h    map V_SOFTKEY to V_OFF, disabling HP Softkeys
  4573. SeeAlso: #0460
  4574.  
  4575. (Table 0460)
  4576. Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
  4577.           INT 09         INT 16 keycode
  4578.     Key         scan code    Default     Shifted   Ctrl         Alt
  4579.  * (NumPd)    37h    2Ah     (Prt Sc)  00/72h    00/37H
  4580.  Sysreq        54h      --     --       --         --
  4581.  CCP-Up        60h    00/D9h     00/BFh       00/A5h    00/8BH
  4582.  CCP-Left    61h    00/DAh     00/C0h       00/A6h    00/8CH
  4583.  CCP-Down    62h    00/DBh     00/C1h       00/A7h    00/8DH
  4584.  CCP-Right    63h    00/DCh     00/C2h       00/A8h    00/8EH
  4585.  CCP-Home    64h    00/DDh     00/C3h       00/A9h    00/8FH
  4586.  CCP-PgUp    65h    00/DEh     00/C4h       00/AAh    00/90H
  4587.  CCP-End    66h    00/DFh     00/C5h       00/ABh    00/91H
  4588.  CCP-PgDn    67h    00/E0h     00/C6h       00/ACh    00/92H
  4589.  CCP-Ins    68h    00/E1h     00/C7h       00/ADh    00/93H
  4590.  CCP-Del    69h    00/E2h     00/C8h       00/AEh    00/94H
  4591.  CCP-CNTR    6Ah    00/E3h     00/C9h       00/AFh    00/95H
  4592.  F1        70h    00/E9h     00/CFh       00/B5h    00/9BH
  4593.  F2        71h    00/EAh     00/D0h       00/B6h    00/9CH
  4594.  F3        72h    00/EBh     00/D1h       00/B7h    00/9DH
  4595.  F4        73h    00/ECh     00/D2h       00/B8h    00/9EH
  4596.  F5        74h    00/EDh     00/D3h       00/B9h    00/9FH
  4597.  F6        75h    00/EEh     00/D4h       00/BAh    00/A0H
  4598.  F7        76h    00/EFh     00/D5h       00/BBh    00/A1H
  4599.  F8        77h    00/F0h     00/D6h       00/BCh    00/A2H
  4600. SeeAlso: #0005,#0459
  4601. --------b-166F08-----------------------------
  4602. INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
  4603.     AX = 6F08h
  4604. Return: AH = status 
  4605.        00h successful
  4606.        02h unsupported (non-HIL, i.e. standard, keyboard)
  4607.     BH = HP-HIL address (HP Vectra AT only???)
  4608.     BL = HP-HIL ID (HP Vectra AT only???)
  4609.     BL = keyboard language (ES/QS/RS only???) (see #0461)
  4610. Notes:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4611.     the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
  4612.       be computed as (BH-1)*6 + N, where N is the address of the first
  4613.       HP-HIL device driver (see INT 6F/AH=0Ah"SF_INQUIRE_FIRST")
  4614. SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"SF_INQUIRE_FIRST"
  4615.  
  4616. (Table 0461)
  4617. Values for HP HIL keyboard language code:
  4618.  00h    reserved                          
  4619.  01h    Arabic-French                          
  4620.  02h    Kanji                              
  4621.  03h    Swiss-French                          
  4622.  04h    Portugese                          
  4623.  05h    Arabic                              
  4624.  06h    Hebrew                              
  4625.  07h    Canadian-English                      
  4626.  08h    Turkish                              
  4627.  09h    Greek                              
  4628.  0Ah    Thai                              
  4629.  0Bh    Italian                              
  4630.  0Ch    Hangul (Korean)                          
  4631.  0Dh    Dutch                              
  4632.  0Eh    Swedish                              
  4633.  0Fh    German                              
  4634.  10h    Chinese (PRC)          
  4635.  11h    Chinese (Taiwan)      
  4636.  12h    Swiss (French ii)     
  4637.  13h    Spanish              
  4638.  14h    Swiss (German ii)     
  4639.  15h    Belgian (Flemish)     
  4640.  16h    Finish              
  4641.  17h    United Kingdom          
  4642.  18h    French-Canadian          
  4643.  19h    French-German          
  4644.  1Ah    Norwegian          
  4645.  1Bh    French              
  4646.  1Ch    Danish              
  4647.  1Dh    Katakana          
  4648.  1Eh    Latin American Spanish
  4649.  1Fh    United States-American
  4650.  20h-FEh reserved
  4651.  FFh    non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
  4652. --------b-166F09-----------------------------
  4653. INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
  4654.     AX = 6F09h
  4655. Return: AH = 00h (successful)
  4656. Desc:    reset all keyboard mappings to their default translators, and reset
  4657.       typematic values to their defaults
  4658. Note:    supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  4659. SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
  4660. --------b-166F0A-----------------------------
  4661. INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
  4662.     AX = 6F0Ah
  4663. Return: AH = 00h (successful)
  4664.     BX = speed code
  4665.         0Bh for low speed (see #0462)
  4666.         12h for medium speed (see #0462)
  4667.         0Ch for high speed (see #0462)
  4668. Note:    supported by ES, QS, and RS series of HP Vectras
  4669. SeeAlso: AX=6F00h
  4670.  
  4671. (Table 0462)
  4672. Values for HP Vetra CPU speed:
  4673.     Vectra        Low        Medium    High
  4674.     ES        8 MHz         -         8 MHz
  4675.     ES/12        8 MHz         -        12 MHz
  4676.     QS/16, RS/16    8 MHz         -        16 MHz
  4677.     QS/16S        8 MHz         -        16 MHz
  4678.     QS/20, RS/20    8 MHz         -        20 MHz
  4679.     RS/20C        5 MHz        10 MHz    20 MHz
  4680.     RS/25C        5 MHz        12.5 MHz    25 MHz
  4681. --------b-166F0B-----------------------------
  4682. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
  4683.     AX = 6F0Bh
  4684. Return: AH = 00h (successful)
  4685. Notes:    see AX=6F0Ah for speed definitions
  4686.     supported by ES, QS, and RS series of HP Vectras
  4687. SeeAlso: AX=6F00h,AX=6F0Ah
  4688. --------b-166F0C-----------------------------
  4689. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
  4690.     AX = 6F0Ch
  4691. Return: AH = 00h (successful)
  4692. Notes:    see AX=6F0Ah for speed definitions
  4693.     supported by ES, QS, and RS series of HP Vectras
  4694. SeeAlso: AX=6F00h,AX=6F0A
  4695. --------b-166F0D-----------------------------
  4696. INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
  4697.     AX = 6F0Dh
  4698. Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
  4699. Notes:    supported by ES, QS, and RS series of HP Vectras
  4700.     called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  4701.       input system
  4702. SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F"HP Vectra"
  4703. --------b-166F0E-----------------------------
  4704. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
  4705.     AX = 6F0Eh
  4706.     BL = new interrupt number (60h-6Fh,78h-7Fh)
  4707. Return: AH = status (00h = successful)
  4708. Desc:    allows the HIL Extended BIOS software to use a non-default interrupt
  4709.       number in case of an interrupt conflict with another application
  4710. Notes:    supported by ES, QS, and RS series of HP Vectras
  4711.     called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  4712.       input system
  4713. SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F"HP"
  4714. --------b-166F0F-----------------------------
  4715. INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
  4716.     AX = 6F0Fh
  4717. Return: AH = status
  4718.         00h successful
  4719.         FEh cache subsystem is bad
  4720. SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
  4721. --------b-166F10-----------------------------
  4722. INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
  4723.     AX = 6F10h
  4724. Return: AH = 00h (successful)
  4725. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
  4726. --------b-166F11-----------------------------
  4727. INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
  4728.     AX = 6F11h
  4729. Return: AH = 00h (successful)
  4730.     AL bit 0 = cache state
  4731.         0 cache disabled
  4732.         1 cache enabled
  4733. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
  4734. --------b-166F12-----------------------------
  4735. INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
  4736.     AX = 6F12h
  4737. Return: AH = 00h (successful)
  4738. Note:    see AX=6F0Ah for speed definitions
  4739. SeeAlso: AX=6F00h,AX=6F0Ah
  4740. --------K-1670-------------------------------
  4741. INT 16 - FAKEY.COM - INSTALLATION CHECK
  4742.     AH = 70h
  4743. Return: AX = 1954h if installed
  4744. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  4745. --------K-1671-------------------------------
  4746. INT 16 - FAKEY.COM - PUSH KEYSTROKES
  4747.     AH = 71h
  4748.     CX = number of keystrokes
  4749.     DS:SI -> array of words containing keystrokes to be returned by AH=00h
  4750. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  4751. SeeAlso: AH=05h,AH=72h
  4752. --------K-1672-------------------------------
  4753. INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
  4754.     AH = 72h
  4755. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  4756. SeeAlso: AH=71h
  4757. --------K-1673-------------------------------
  4758. INT 16 - FAKEY.COM - PLAY TONES
  4759.     AH = 73h
  4760.     CX = number of tones to play
  4761.     DS:SI -> array of tones (see #0463)
  4762. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  4763. SeeAlso: INT 15/AX=1019h
  4764.  
  4765. Format of FAKEY.COM tone array entries:
  4766. Offset    Size    Description    (Table 0463)
  4767.  00h    WORD    divisor for timer channel 2
  4768.  02h    WORD    duration in clock ticks
  4769. --------i-167463-----------------------------
  4770. INT 16 U - FastJuice - INSTALLATION CHECK
  4771.     AX = 7463h ("tc")
  4772. Return: AX = 5443h ("TC") if installed
  4773. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  4774. SeeAlso: AX=6A6Bh
  4775. --------R-1675-------------------------------
  4776. INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
  4777.     AH = 75h
  4778.     AL = number of ticks between checks for new screen changes
  4779. --------R-1676-------------------------------
  4780. INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
  4781.     AH = 76h
  4782.     AL = error checking type
  4783.         00h none
  4784.         01h fast
  4785.         02h slow
  4786. --------R-1677-------------------------------
  4787. INT 16 - pcANYWHERE III - LOG OFF
  4788.     AH = 77h
  4789.     AL = mode
  4790.         00h wait for another call
  4791.         01h leave in Memory Resident Mode
  4792.         02h leave in Automatic Mode
  4793.         FFh leave in current operating mode
  4794. --------U-167761-----------------------------
  4795. INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
  4796.     AX = 7761h ('wa')
  4797. Return: AX = 5741h ('WA') if installed
  4798. Note:    WATCH.COM is part of the "TSR" package by Kim Kokkonen
  4799. SeeAlso: INT 21/AX=7761h
  4800. --------U-167788BX7789-----------------------
  4801. INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
  4802.     AX = 7788h
  4803.     BX = 7789h
  4804.     DS:SI -> signature "PUSHDIR VERSION 1.0"
  4805. Return: AX = 7789h if installed and signature correct
  4806.     BX = 7788h
  4807.     SI destroyed
  4808. --------R-1679-------------------------------
  4809. INT 16 - pcANYWHERE III - CHECK STATUS
  4810.     AH = 79h
  4811. Return: AX = status
  4812.         FFFFh if resident and active
  4813.         FFFEh if resident but not active
  4814.         FFFDh if in Memory Resident mode
  4815.         FFFCh if in Automatic mode
  4816.         other value if not resident
  4817. SeeAlso: AX=7B00h,INT 21/AX=2B44h
  4818. --------R-167A-------------------------------
  4819. INT 16 - pcANYWHERE III - CANCEL SESSION
  4820.     AH = 7Ah
  4821. --------R-167B00-----------------------------
  4822. INT 16 - pcANYWHERE III - SUSPEND
  4823.     AX = 7B00h
  4824. SeeAlso: AH=79h,AX=7B01h
  4825. --------R-167B01-----------------------------
  4826. INT 16 - pcANYWHERE III - RESUME
  4827.     AX = 7B01h
  4828. SeeAlso: AH=79h,AX=7B00h
  4829. --------R-167C-------------------------------
  4830. INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
  4831.     AH = 7Ch
  4832. Return: AH = port number
  4833.     AL = baud rate (see #0464)
  4834. SeeAlso: AX=7B00h,AH=7Eh
  4835.  
  4836. (Table 0464)
  4837. Values for pcANYWHERE III baud rate:
  4838.  00h    50 baud
  4839.  01h    75 baud
  4840.  02h    110 baud
  4841.  03h    134.5 baud
  4842.  04h    150 baud
  4843.  05h    300 baud
  4844.  06h    600 baud
  4845.  07h    1200 baud
  4846.  08h    1800 baud
  4847.  09h    2000 baud
  4848.  0Ah    2400 baud
  4849.  0Bh    4800 baud
  4850.  0Ch    7200 baud
  4851.  0Dh    9600 baud
  4852.  0Eh    19200 baud
  4853. SeeAlso: #0206
  4854. --------R-167D-------------------------------
  4855. INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
  4856.     AH = 7Dh
  4857.     AL = subfunction
  4858.         00h set terminal parameters
  4859.         01h get terminal parameters
  4860.         02h get configuration header and terminal parameters
  4861.     DS:CX -> terminal parameter block
  4862. SeeAlso: AH=7Ch,AH=7Eh
  4863. --------R-167E-------------------------------
  4864. INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
  4865.     AH = 7Eh
  4866.     AL = subfunction
  4867.         01h port input status
  4868.         Return AX = 0 if no characer ready,
  4869.                AX = 1 if character ready
  4870.         02h port input character
  4871.         Return AL = received character
  4872.         03h port output character in CX
  4873.         11h hang up phone
  4874. SeeAlso: AH=7Ch
  4875. --------R-167F-------------------------------
  4876. INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
  4877.     AH = 7Fh
  4878.     AL = subfunction
  4879.         00h enable remote keyboard only
  4880.         01h enable host keyboard only
  4881.         02h enable both keyboards
  4882.         08h display top 24 lines
  4883.         09h display bottom 24 lines
  4884.         10h Hayes modem
  4885.         11h other modem
  4886.         12h direct connect
  4887. --------U-1680-------------------------------
  4888. INT 16 - MAKEY.COM - INSTALLATION CHECK
  4889.     AH = 80h
  4890. Return: AX = 1954h if installed
  4891. Program: MAKEY is a utility by System Enhancement Associates
  4892. --------U-168765BX4321-----------------------
  4893. INT 16 - AT.COM version 8/26/87 - API
  4894.     AX = 8765h
  4895.     BX = 4321h
  4896.     CX = ??? or FFFFh
  4897.     if CX = FFFFh
  4898.         DX = number of event to remove or FFFFh
  4899. Return: ES:BX -> event record array (see #0465)
  4900. Program: AT.COM is a resident scheduler by Bill Frolik
  4901.  
  4902. Format of AT.COM event record:
  4903. Offset    Size    Description    (Table 0465)
  4904.  00h    BYTE    in-use flag (00h free, 01h in use, FFh end of array)
  4905.  01h    BYTE    day of date on which to trigger
  4906.  02h    BYTE    month of date on which to trigger
  4907.  03h    BYTE    trigger time, minute
  4908.  04h    BYTE    trigger time, hour
  4909.  05h    WORD    offset of command to be executed
  4910. ----------1692-------------------------------
  4911. INT 16 - ???
  4912.     AH = 92h
  4913. Return: AH <= 80h if ???
  4914. Note:    this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  4915. SeeAlso: AH=05h"PCjr",AH=A2h
  4916. --------U-1699-------------------------------
  4917. INT 16 - SCOUT v5.4 - GET ???
  4918.     AH = 99h
  4919. Return: AX = ABCDh
  4920.     BX:CX -> ??? (appears to be start of PSP for resident portion)
  4921. Program: Scout is a memory-resident file manager by New-Ware
  4922. SeeAlso: AH=9Eh
  4923. --------U-169E-------------------------------
  4924. INT 16 - SCOUT v5.4 - INSTALLATION CHECK
  4925.     AH = 9Eh
  4926. Return: AX = ABCDh if installed
  4927. Program: Scout is a memory-resident file manager by New-Ware
  4928. SeeAlso: AH=99h
  4929. ----------16A2-------------------------------
  4930. INT 16 - ???
  4931.     AH = A2h
  4932. Return: AH <= 80h if ???
  4933. Note:    this function is this function is called by the DOS 5+ KEYB.COM
  4934. SeeAlso: AH=92h
  4935. --------V-16AA-------------------------------
  4936. INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
  4937.     AH = AAh
  4938.     Various registers set up by high level language.
  4939. Return: Graphics performed
  4940. Note:    PT stands for Paint Tools which is a graphics library for Turbo Pascal,
  4941.       Modula 2 and others from DataBiten in Sweden. The library is
  4942.       installed as a memory resident driver.
  4943. --------U-16AABBBXEEFF-----------------------
  4944. INT 16 U - JORJ v4.3 - INSTALLATION CHECK
  4945.     AX = AABBh
  4946.     BX = EEFFh
  4947. Return: AX = EEFFh if installed
  4948.     BX = AABBh if installed
  4949.         CL = hotkey name (default 6Ah 'j' for Alt-J)
  4950. Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
  4951.       Co.
  4952. Index:    hotkeys;JORJ
  4953. --------K-16AF20BX4B33-----------------------
  4954. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
  4955.     AX = AF20h
  4956.     BX = 4B33h ('K3')
  4957. Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
  4958.     ES:BX -> extended keyboard buffer start
  4959.     ES:DX -> extended keyboard buffer end
  4960.     ES:SI -> next keystroke
  4961.     ES:DI -> last keystroke in buffer
  4962.     CX = number of keystrokes in buffer
  4963. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  4964.       K3 extended German keyboard driver by Martin Gerdes published in c't
  4965.       magazine in 1988
  4966. Note:    this function replaces the identical function AH=20h"K3"
  4967. SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
  4968. --------K-16AF25BX4B33-----------------------
  4969. INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
  4970.     AX = AF25h
  4971.     BX = 4B33h ('K3')
  4972.     CX = number of keystrokes to copy
  4973.     ES:SI -> buffer containing keystrokes
  4974. Return: CF clear if successful
  4975.     CF set on error (i.e. buffer full)
  4976.         CX = number of keystrokes NOT transferred
  4977.         ES:SI -> first keystroke not transferred
  4978. Note:    this function replaces the identical function AH=25h"K3"
  4979. SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
  4980. --------K-16AF4DBX4B33-----------------------
  4981. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
  4982.     AX = AF4Dh
  4983.     BX = 4B33h ('K3')
  4984. Return: AL = 50h if installed
  4985.         BX = K3 version
  4986.         DX = API version
  4987.         ES:CX -> K3 structure (version-dependent) (see #0466)
  4988. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  4989.       K3 extended German keyboard driver by Martin Gerdes published in c't
  4990.       magazine in 1988
  4991. SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF83h,INT 2F/AX=D44Fh/BX=0000h
  4992. SeeAlso: INT 2F/AX=ED58h
  4993. Index:    installation check;K3PLUS
  4994.  
  4995. Format of internal K3 structure:
  4996. Offset    Size    Description    (Table 0466)
  4997.  00h  3 BYTEs    signature "K3$"
  4998.  03h    BYTE    length of structure, including this byte and signature
  4999.  04h    WORD    compiler switch option flags A (see #0467)
  5000.  06h    WORD    compiler switch option flags B (see #0468)
  5001.  08h    BYTE    internal flags A (see #0469)
  5002.  09h    BYTE    internal flags B (see #0470)
  5003.  0Ah    WORD    DOS version recorded at startup
  5004.  0Ch    WORD    "ActTypeSpeed"
  5005.  0Eh    WORD    last Keyboard-ID sent
  5006.         41ABh translated, 83ABh native (pass-through)
  5007.  10h    WORD    offset of K3TAB Special
  5008.  12h    WORD    offset of K3TAB German
  5009.  14h    WORD    offset of K3TAB Alt
  5010.  16h    WORD    offset of K3TAB AltGr
  5011.  18h    WORD    offset of K3TAB Ctrl
  5012.  1Ah    WORD    offset of K3TAB NPad
  5013.  1Ch    WORD    offset of K3TAB CtrlNPad
  5014.  1Eh    WORD    offset of K3TAB AltNPad
  5015.  20h    WORD    offset of K3TAB ApoTbl or 0000h
  5016.  22h    WORD    offset of K3TAB UmlautTbl or 0000h
  5017.  24h    WORD    offset of K3TAB UmlautTblExp or 0000h
  5018.  26h    WORD    length of video mode table
  5019.  28h    WORD    offset of VidMdTbl or 0000h
  5020.  2Ah    BYTE    '$' end marker
  5021.  
  5022. Bitfields for K3PLUS compiler switch option flags A:
  5023. Bit(s)    Description    (Table 0467)
  5024.  15    GuINT16Fct2 (general use of INT 16 function 2)
  5025.  14    Int15df (INT 15 has to be predefined)
  5026.  13    GuAltNP (general use of Alt Numpad)
  5027.  12    SupAT (ATs+ supported)
  5028.  11    GuINT16Fct3 (general use of INT 16 function 3)
  5029.  10    GuINT16Ret (general use of INT16 bad function return)
  5030.  9-8    Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
  5031.  7    ForceMF (force MF decode without read-ID)
  5032.  6    KXlate (translate keys for special keyboard)
  5033.  5    UmlautX (umlaut translation capability included)
  5034.  4    ApoX (translate apostrophe)
  5035.  3    DoINT16 (INT 16 handler included)
  5036.  2    UseCC (CopyCursor included)
  5037.  1-0    UseEB
  5038.     0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
  5039.  
  5040. Bitfields for K3 compiler switch option flags B:
  5041. Bit(s)    Description    (Table 0468)
  5042.  15-11    reserved (0)
  5043.  10    CtrlSeq (Ctrl macro capability included)
  5044.  9-8    SupINT16fct55FE
  5045.  6    DoInstallCheck (check for double installation)
  5046.  5    SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
  5047.  4    SendOut (sound and message output supported)
  5048.  3    SupInt16fct5500 (INT 16/AX=5500h supported)
  5049.  2    GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
  5050.  1-0    UseBufferStart (0=use standard area, 1=set standard area,
  5051.     2=use internal indexes, 3=reserved)
  5052.  
  5053. Bitfields for K3 internal flags A:
  5054. Bit(s)    Description    (Table 0469)
  5055.  7    DoingUmlautExp
  5056.  6    CallINT15fct4F
  5057.  5    Beep1 (requires SendOut set in option flags B)
  5058.  4    ATflag (set for AT, 386, PS/2 Models 50-80)
  5059.  3    XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
  5060.  2    KeyClick
  5061.  1    UmlautExp
  5062.  0    UmlautTrans
  5063.  
  5064. Bitfields for K3 internal flags B:
  5065. Bit(s)    Description    (Table 0470)
  5066.  7-5    reserved
  5067.  4    TranslateE0 enabled
  5068.  3    Boot enabled
  5069.  2    PrintScreen enabled
  5070.  1    Break enabled
  5071.  0    ApoPendingBeep
  5072. --------K-16AF50BX4B33-----------------------
  5073. INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
  5074.     AX = AF50h
  5075.     BX = 4B33h ('K3')
  5076.     CH = function
  5077.         00h get function flags
  5078.         CL = 00h
  5079.         Return: CX = supported function flags (see #0471)
  5080.         nonzero reserved for extensions
  5081. SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
  5082.  
  5083. Bitfields for K3PLUS supported function list:
  5084. Bit(s)    Description    (Table 0471)
  5085.  0    function 4Dh supported
  5086.  1    function 50h supported
  5087.  2-3    reserved (0)
  5088.  4    function 20h supported
  5089.  5    function 25h supported
  5090.  6    function 51h supported
  5091.  7    reserved (0)
  5092.  8    function 80h supported
  5093.  9    function 81h supported
  5094.  10    function 82h supported
  5095.  11-15    reserved (0)
  5096. --------K-16AF51BX4B33-----------------------
  5097. INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
  5098.     AX = AF51h
  5099.     BX = 4B33h ('K3')
  5100.     CX = switches
  5101. Return: AL = status
  5102.         00h done
  5103.         CX = previous switch settings
  5104.         01h switch not supported
  5105.         FFh other error
  5106. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
  5107. --------K-16AF80BX4B33-----------------------
  5108. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
  5109.     AX = AF80h
  5110.     BX = 4B33h ('K3')
  5111. Return: AL = status
  5112.         00h not supported
  5113.         81h if successful
  5114.         ES:CX -> original INT 09 handler
  5115. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
  5116. --------K-16AF81BX4B33-----------------------
  5117. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
  5118.     AX = AF81h
  5119.     BX = 4B33h ('K3')
  5120. Return: AL = status
  5121.         00h not supported
  5122.         82h if successful
  5123.         ES:CX -> original INT 16 handler
  5124. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
  5125. --------K-16AF82BX4B33-----------------------
  5126. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
  5127.     AX = AF82h
  5128.     BX = 4B33h ('K3')
  5129. Return: AL = status
  5130.         00h not supported
  5131.         83h if successful
  5132.         ES:CX -> original INT 10 handler
  5133. Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
  5134.       K3 extended German keyboard driver by Martin Gerdes published in c't
  5135.       magazine in 1988
  5136. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
  5137. --------m-16B0B1-----------------------------
  5138. INT 16 - VGARAM v1.00 - INSTALLATION CHECK
  5139.     AX = B0B1h
  5140.     ES:DI -> 6 byte signature "VGARAM"
  5141. Return: AX = B1B0h if installed,
  5142.     DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
  5143. Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
  5144.       not used in text modes available for DOS
  5145. --------K-16CA--BX736B-----------------------
  5146. INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
  5147.     AH = CAh
  5148.     BX = 736Bh ("sk")
  5149.     CX = 736Bh
  5150.     AL = function
  5151.         00h installation check
  5152.         Return: DX = words available in keyboard buffer
  5153.         01h place keystroke in buffer
  5154.         DX = keystroke (DH = scan code, DL = ASCII character)
  5155.         Return: DX = words available in keyboard buffer
  5156.                 FFFFh on error
  5157.         02h flush STACKEY and BIOS keyboard buffers
  5158. Return: AX = CAFFh if installed
  5159.         BX = segment of resident code
  5160.         CX = STACKEY version (CH = major, CL = minor)
  5161. Program: STACKEY is a shareware keyboard-input faking TSR
  5162. Index:    installation check;STACKEY
  5163. --------V-16CA00BX6570-----------------------
  5164. INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
  5165.     AX = CA00h
  5166.     BX = 6570h ("ep")
  5167.     CX = 6570h
  5168. Return: AX = CAFFh if installed
  5169.         BX = segment of resident code
  5170.         CX = ??? (0090h)
  5171. Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
  5172.       permanent across mode switches
  5173. SeeAlso: AX=CA00h/BX=7670h
  5174. --------V-16CA00BX7670-----------------------
  5175. INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
  5176.     AX = CA00h
  5177.     BX = 7670h ("vp")
  5178.     CX = 7670h
  5179. Return: AX = CAFFh if installed
  5180.         BX = segment of resident code
  5181.         CX = ??? (0090h)
  5182. Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
  5183.       permanent across mode switches
  5184. SeeAlso: AX=CA00h/BX=6570h
  5185. --------U-16D724CX00CB-----------------------
  5186. INT 16 U - APCAL v3.20 - GET ???
  5187.     AX = D724h
  5188.     CX = 00CBh
  5189. Return: AX = 0000h
  5190.     BX = 0000h
  5191.     DX:CX -> ??? or 0000h:0000h
  5192. Program: APCAL is an optionally-resident shareware appointment calendar by
  5193.       Gamma Software
  5194. SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
  5195. --------U-16D724CX00CC-----------------------
  5196. INT 16 U - APCAL v3.20 - GET ???
  5197.     AX = D724h
  5198.     CX = 00CCh
  5199. Return: AX = 0000h
  5200.     BX = 0000h
  5201.     DX:CX -> ??? (apparently an internal data area)
  5202. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
  5203. --------U-16D724CX00CD-----------------------
  5204. INT 16 U - APCAL v3.20 - GET ???
  5205.     AX = D724h
  5206.     CX = 00CDh
  5207. Return: AX = ??? (5345h seen)
  5208. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
  5209. ----------16DFDF-----------------------------
  5210. INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
  5211.     AX = DFDFh
  5212. Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
  5213.       "06/18/93" if installed
  5214. ----------16E0-------------------------------
  5215. INT 16 - AMI BIOS - Flash ROM
  5216.     AH = E0h
  5217.     AL = subfunction
  5218.         00h get version ???
  5219.         01h type set save requirement ???
  5220.         02h get type set status ???
  5221.         04h lower voltage ???
  5222.         05h raise voltage ???
  5223.         06h write protect ???
  5224.         07h Flash ROM write enable ???
  5225. Notes:    the "Meningitis" virus uses this API when attacking a system equipped
  5226.       with an AMI BIOS; it is supposedly able to write itself into the
  5227.       Flash ROM and thus make itself part of the BIOS
  5228.     this API is not supported by AMI Pentium BIOS 1.00.05.AX1 on a Flash
  5229.       ROM-equipped Gateway 2000 machine
  5230. --------t-16E0E0-----------------------------
  5231. INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
  5232.     AX = E0E0h
  5233. Return: AX = 1F1Fh if installed
  5234.         DWORD 0040h:00F0h -> last data block in TSR list (see #0473)
  5235. Note:    the returned TSR list provides support for communication among TSRs
  5236.       built with TurboPower's Turbo Professional and Object Professional
  5237.       libraries for Turbo Pascal
  5238. SeeAlso: AX=F0F0h
  5239. --------U-16ED--BHED-------------------------
  5240. INT 16 - BORLAND TURBO LIGHTNING - API
  5241.     AH = EDh
  5242.     BH = EDh
  5243.     BL = function
  5244.         00h installation check
  5245.         Return: AX = 5205h
  5246.             CH = major version
  5247.             CL = minor version
  5248.         01h identical to function 00h???
  5249.         02h get resident data segment
  5250.         Return: AX = data segment of resident portion
  5251.         03h get resident ???
  5252.         Return: AX = offset of some buffer in resident code seg
  5253.         04h redefine auxiliary dictionary
  5254.         DS:SI -> counted filename string
  5255.         Return: AL = result code
  5256.         05h select active environment
  5257.         AL = environment (00h to 0Ch)
  5258.         Return: AX = status
  5259.                 0000h if OK
  5260.                 0001h if out of range
  5261.         06h toggle AutoProof???
  5262.         AL = state (00h off, 01h on)
  5263.         07h ???
  5264.         08h ???
  5265.         AL = char???
  5266.         CX = ???
  5267.         DX = ???
  5268.         Return: AX = 0, 1 or 2
  5269.         09h ???
  5270.         0Ah ???
  5271.         CX = ???
  5272.         DX = ???
  5273.         Return: AX = ???
  5274.         0Bh check dictionary integrity???
  5275.         DS:SI -> counted dictionary filename string
  5276.         Return: AX = 0, 40h, 80h
  5277.         0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
  5278.         DS:SI -> counted string to check
  5279.         Return: AH = 0
  5280.             AL = result code
  5281.                00h string found in dictionary
  5282.                20h string begins more than one word
  5283.                40h string not found
  5284.         0Dh set ???
  5285.         (sets an internal flag)
  5286.         0Eh spellcheck string (RAM dictionary only)
  5287.         DS:SI -> counted string to check
  5288.         Return: AH = 00h
  5289.             AL = result code
  5290.                 00h string found in dictionary
  5291.                 01h string not found
  5292.                 02h ???
  5293.         0Fh ???
  5294.         10h ???
  5295. Notes:    AX in general returns an error code from most functions.
  5296. Index:    installation check;Turbo Lightning
  5297. --------U-16EF-------------------------------
  5298. INT 16 - CALCULATOR - INSTALLATION CHECK
  5299.     AH = EFh
  5300. Return: AX = 0088h if installed
  5301. Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
  5302.       Marek Kosznik
  5303. --------b-16F0-------------------------------
  5304. INT 16 - Compaq 386 and newer - SET CPU SPEED
  5305.     AH = F0h
  5306.     AL = speed code (see #0472)
  5307.     if AL=09h,
  5308.         CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
  5309. SeeAlso: AH=F1h,AH=F3h
  5310.  
  5311. (Table 0472)
  5312. Values for speed code:
  5313.  00h    equivalent to 6 MHz 80286 (COMMON)
  5314.  01h    equivalent to 8 MHz 80286 (FAST)
  5315.  02h    full 16 MHz (HIGH)
  5316.  03h    toggles between 8 MHz-equivalent and speed set by system board switch
  5317.       (AUTO or HIGH)
  5318.  08h    full 16 MHz except 8 MHz-equivalent during floppy disk access
  5319.  09h    specify speed directly
  5320. --------t-16F0F0-----------------------------
  5321. INT 16 - TurboPower TSRs - INSTALLATION CHECK
  5322.     AX = F0F0h
  5323. Return: AX = 0F0Fh if installed
  5324.         ES:DI -> last data block in TSR list (see #0473)
  5325. Note:    the returned TSR list provides support for communication among TSRs
  5326.       built with TurboPower's Turbo Professional and Object Professional
  5327.       libraries for Turbo Pascal
  5328. SeeAlso: AX=E0E0h
  5329.  
  5330. Format of TurboPower TSR data block:
  5331. Offset    Size    Description    (Table 0473)
  5332.  00h    DWORD    pointer to program tag (counted ASCII string)
  5333.  04h    WORD    interface version number (0400h)
  5334.  06h    DWORD    pointer to command entry point
  5335.  0Ah    DWORD    pointer to previous data block (0000h:0000h if none)
  5336.  0Eh    DWORD    pointer to next data block (0000h:0000h if none)
  5337. ---swappable TSRs only---
  5338.  12h    DWORD    pointer to swapping data
  5339.  16h    DWORD    pointer to user data
  5340.     more???
  5341. --------b-16F1-------------------------------
  5342. INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
  5343.     AH = F1h
  5344. Return: AL = speed code (see #0472)
  5345.     if AL = 09h, CX = speed code
  5346. SeeAlso: AH=F0h,AH=F3h
  5347. --------b-16F2-------------------------------
  5348. INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
  5349.     AH = F2h
  5350. Return: AL = type
  5351.         00h if 11-bit AT keyboard is in use
  5352.         01h if 9-bit PC keyboard is in use
  5353.     AH = 00h (04/08/93 system ROM)
  5354. --------b-16F3-------------------------------
  5355. INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
  5356.     AH = F3h
  5357.     AL = new limit
  5358.         00h limit is 6 Mhz
  5359.         01h limit is 8 Mhz/6 Mhz
  5360. SeeAlso: AH=F0h,AH=F1h
  5361. --------U-16F398-----------------------------
  5362. INT 16 U - NORTON GUIDES - INSTALLATION CHECK
  5363.     AX = F398h
  5364. Return: AX = 6A73h ("js")
  5365.     BH = scan code of current hot key
  5366.     BL = ASCII code of current hot key
  5367. Note:    NG.EXE was written by John Socha
  5368. --------b-16F400-----------------------------
  5369. INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
  5370.     AX = F400h
  5371. Return: AH = E2h
  5372.     AL = status
  5373.         00h not present
  5374.         01h enabled
  5375.         02h disabled
  5376. SeeAlso: AX=F401h,AX=F402h
  5377. --------b-16F401-----------------------------
  5378. INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
  5379.     AX = F401h
  5380. Return: AX = E201h
  5381. SeeAlso: AX=F400h,AX=F402h
  5382. --------b-16F402-----------------------------
  5383. INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
  5384.     AX = F402h
  5385. Return: AX = E202h
  5386. SeeAlso: AX=F400h,AX=F401h
  5387. --------v-16FA00DX5945-----------------------
  5388. INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
  5389.     AX = FA00h
  5390.     DX = 5945h
  5391. Return: CF clear
  5392.     DI = 4559h
  5393.     BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
  5394.         FFFFh if disabled
  5395. Note:    MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
  5396. SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
  5397. --------v-16FA01DX5945-----------------------
  5398. INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
  5399.     AX = FA01h
  5400.     DX = 5945h
  5401. Return: CF clear if successful
  5402.     DI = 4559h
  5403. SeeAlso: AX=FA00h
  5404. --------v-16FA02DX5945-----------------------
  5405. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
  5406.     AX = FA02h
  5407.     DX = 5945h
  5408.     BL = new parameter flags (see #0474)
  5409. Return: CF clear
  5410.     DI = 4559h
  5411.     CL = old value of parameter flags
  5412.  
  5413. Bitfields for VSAFE/VWATCH parameter flags:
  5414. Bit(s)    Description    (Table 0474)
  5415.  7    Protect executable files
  5416.  6    Protect FD boot sector
  5417.  5    Protect HD boot sector
  5418.  4    Boot sector viruses
  5419.  3    Check executable files
  5420.  2    General write protect
  5421.  1    Resident
  5422.  0    HD Low level format
  5423. --------v-16FA03DX5945-----------------------
  5424. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
  5425.     AX = FA03h
  5426.     DX = 5945h
  5427. Return: CF clear
  5428.     DI = 4559h
  5429.     AX = 0002h
  5430. --------v-16FA04DX5945-----------------------
  5431. INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
  5432.     AX = FA04h
  5433.     DX = 5945h
  5434. Return: CF clear
  5435.     DI = 4559h
  5436.     BL = hotkey disable flag (nonzero if hotkey disabled)
  5437. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  5438. SeeAlso: AX=FA00h,AX=FA05h
  5439. --------v-16FA05DX5945-----------------------
  5440. INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
  5441.     AX = FA05h
  5442.     DX = 5945h
  5443.     BL = new value of hotkey disable flag (nonzero to disable hotkey)
  5444. Return: CF clear
  5445.     DI = 4559h
  5446. Note:    this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  5447. SeeAlso: AX=FA00h,AX=FA04h
  5448. --------v-16FA06DX5945-----------------------
  5449. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
  5450.     AX = FA06h
  5451.     DX = 5945h
  5452. Return: CF clear
  5453.     DI = 4559h
  5454.     BL = test status
  5455.         00h don't monitor network drives (default for VWATCH v2.1)
  5456.         FFh monitor network drives (default for VSAFE v2.0)
  5457.     CL = ??? (only VSAFE 2.0)
  5458. SeeAlso: AX=FA07h
  5459. --------v-16FA07DX5945-----------------------
  5460. INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
  5461.     AX = FA07h
  5462.     DX = 5945h
  5463.     BL = new state
  5464.         00h don't monitor
  5465.         01h monitor network drives
  5466. Return: CF clear
  5467.     DI = 4559h
  5468. Note:    VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
  5469. SeeAlso: AX=FA00h,AX=FA06h
  5470. --------v-16FA08DX5945-----------------------
  5471. INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
  5472.     AX = FA08h
  5473.     DX = 5945h
  5474. Return: CF clear
  5475.     DI = 4559h
  5476.     AX = ??? (0002h)
  5477.     BX = version (BH=major, BL=two-digit minor)
  5478. Note:    this function is not supported by the PC Tools 9.0 VSAFE v2.0
  5479. SeeAlso: AX=FA00h,AX=FA06h
  5480. --------U-16FE55-----------------------------
  5481. INT 16 U - PC Tools v8+ programs - GET ???
  5482.     AX = FE55h
  5483.     CX = segment of resident program or 0000h for last loaded
  5484.     DX = 0000h
  5485. Return: DX = resident code segment (unchanged if CX=0000h on entry)
  5486.     AX = ??? or 0000h
  5487. Note:    this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
  5488.       and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
  5489.       seem to hook it merely to return the same AX as the CPTASK loaded
  5490.       prior to them returned
  5491. --------U-16FEA4-----------------------------
  5492. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
  5493.     AX = FEA4h
  5494. Return: nothing
  5495. Note:    this function is identical to AX=FFA4h, and is implemented by the same
  5496.       code in DESKTOP
  5497. SeeAlso: AX=FFA4h
  5498. --------U-16FEC6-----------------------------
  5499. INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
  5500.     AX = FEC6h
  5501.     BL = new state (00h enabled, nonzero disabled)
  5502. Return: nothing
  5503. Desc:    specify whether CPSCHED API calls other than this one and AX=FE55h will
  5504.       be honored
  5505. --------U-16FED3-----------------------------
  5506. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
  5507.     AX = FED3h
  5508.     DS:SI -> 92-byte data record for ???
  5509. Return: ???
  5510. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  5511.       code in DESKTOP
  5512. SeeAlso: AX=FFD3h
  5513. --------U-16FEDC-----------------------------
  5514. INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
  5515.     AX = FEDCh
  5516. Return: AX,DX destroyed
  5517. Index:    uninstall;CPSCHED
  5518. --------U-16FEEFCX0000-----------------------
  5519. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
  5520.     AX = FEEFh
  5521.     CX = 0000h
  5522. Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
  5523.         BX = segment of resident portion
  5524.         DX = (CPSCHED v8.0) resident CS
  5525. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  5526.       code in DESKTOP
  5527. SeeAlso: AX=FFEFh
  5528. --------U-16FEF1-----------------------------
  5529. INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
  5530.     AX = FEF1h
  5531.     BX = ???
  5532. Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
  5533.     DX = 5555h
  5534. Note:    this function is identical to AX=FFD3h, and is implemented by the same
  5535.       code in DESKTOP
  5536. SeeAlso: AX=FFF1h
  5537. --------K-16FF-------------------------------
  5538. INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
  5539.     AH = FFh
  5540.     DX = scan code
  5541. Return: AL = status
  5542.         00h success
  5543.         01h failure
  5544. Program: KBUF is a keyboard buffer expander by Mark Adler
  5545. SeeAlso: AH=05h
  5546. --------V-16FF-------------------------------
  5547. INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
  5548.     AH = FFh
  5549. Return: AL = interrupt number to which BIOS keyboard handler has been relocated
  5550.     AL+1 = Zoom interrupt number
  5551.     BX = hotkey
  5552. Notes:    the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  5553.       the default hot key is F10
  5554.     not all vendors include the Tseng TSR which supports these functions
  5555. SeeAlso: INT 61"OPTIMA"
  5556. Index:    hotkeys;OPTIMA 1024 VGA
  5557. ----------16FF--BH00-------------------------
  5558. INT 16 - FREEZE.COM - INSTALLATION CHECK
  5559.     AH = FFh
  5560.     BH = 00h
  5561. Return: BH = FFh if installed
  5562. Program: FREEZE is a PC Magazine utility
  5563. --------d-16FF70BX0000-----------------------
  5564. INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
  5565.     AX = FF70h
  5566.     BX = 0000h
  5567.     CX = 4C69h ('Li')
  5568.     DX = 6E6Bh ('nk')
  5569. Return: AX = 0000h
  5570.     CX = 4350h ('CP')
  5571.     DH = major version
  5572.     DL = minor version
  5573. Program: DRIVEMAP is a redirector which allows drives on computers connected
  5574.       over the parallel or serial ports to appear as local drives
  5575. SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
  5576. --------d-16FF70BX0001-----------------------
  5577. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  5578.     AX = FF70h
  5579.     BX = 0001h
  5580.     DL = ???
  5581. Return: AX = ???
  5582.     DH = ???
  5583. SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
  5584. --------d-16FF70BX0002-----------------------
  5585. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  5586.     AX = FF70h
  5587.     BX = 0002h
  5588.     CX = ???
  5589.     DX = ???
  5590. Return: AX = ??? or FFFEh/FFFFh on error
  5591.     DL = ???
  5592. BUG:    DRIVEMAP will branch to random locations for BX values other than
  5593.       those listed above for v8.0-9.0 because a) the incorrect register is
  5594.       range-tested, resulting in BX=0003h-5CD6h being accepted as valid
  5595.       function numbers, and b) the conditional which branches on invalid
  5596.       function numbers jumps to the following instruction, becoming a NOP
  5597. SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
  5598. Index:    installation check;DRIVEMAP
  5599. --------T-16FF80BX0000-----------------------
  5600. INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
  5601.     AX = FF80h
  5602.     BX = 0000h
  5603.     CX = 0000h
  5604.     DX = 0000h
  5605. Return: CX = 5555h if installed
  5606. Program: CPTASK is a task switcher by Central Point Software
  5607. --------T-16FF80BX0001-----------------------
  5608. INT 16 U - PC Tools v8+ CPTASK - GET ???
  5609.     AX = FF80h
  5610.     BX = 0001h
  5611.     ???
  5612. Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
  5613.     BX = ??? (PSP segment of resident code???)
  5614. --------T-16FF80BX0002-----------------------
  5615. INT 16 U - PC Tools v8+ CPTASK - GET ???
  5616.     AX = FF80h
  5617.     BX = 0002h
  5618. Return: DX:SI -> ???
  5619. --------T-16FF80BX0003-----------------------
  5620. INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
  5621.     AX = FF80h
  5622.     BX = 0003h
  5623. Return: AX = flags (see #0475)
  5624. SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
  5625.  
  5626. Bitfields for CPTASK flags:
  5627. Bit(s)    Description    (Table 0475)
  5628.  10    ???
  5629.  13    ???
  5630.  14    ???
  5631.  15    ???
  5632. --------T-16FF80BX0004-----------------------
  5633. INT 16 U - PC Tools v8+ CPTASK - SET ???
  5634.     AX = FF80h
  5635.     BX = 0004h
  5636.     CX = new value of ???
  5637. Return: ???
  5638. Note:    this function also sets bit 14 of the flags word returned by
  5639.       AX=FF80h/BX=0003h
  5640. --------T-16FF80BX0005-----------------------
  5641. INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
  5642.     AX = FF80h
  5643.     BX = 0005h
  5644. Return: AX = number of active tasks???
  5645. --------T-16FF80BX0006-----------------------
  5646. INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
  5647.     AX = FF80h
  5648.     BX = 0006h
  5649. Return: AX = old state (0000h clear, 0001h set)
  5650. Note:    the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
  5651. --------T-16FF80BX0007-----------------------
  5652. INT 16 U - PC Tools v8+ CPTASK - ???
  5653.     AX = FF80h
  5654.     BX = 0007h
  5655.     ES:DI -> ???
  5656.     ???
  5657. Return: ???
  5658. --------T-16FF80BX0008-----------------------
  5659. INT 16 U - PC Tools v8+ CPTASK - ???
  5660.     AX = FF80h
  5661.     BX = 0008h
  5662.     ???
  5663. Return: ???
  5664. --------T-16FF80BX0009-----------------------
  5665. INT 16 U - PC Tools v8+ CPTASK - GET ???
  5666.     AX = FF80h
  5667.     BX = 0009h
  5668. Return: CL = ???
  5669.     CH = ??? (01h or 02h)
  5670. --------T-16FF80BX000A-----------------------
  5671. INT 16 U - PC Tools v9+ CPTASK - SET ???
  5672.     AX = FF80h
  5673.     BX = 000Ah
  5674.     DS:SI -> 128-byte buffer containing ???
  5675. --------T-16FF80BX000B-----------------------
  5676. INT 16 U - PC Tools v9+ CPTASK - SET ???
  5677.     AX = FF80h
  5678.     BX = 000Bh
  5679.     DX = index of ??? task (1-10)
  5680. --------T-16FF80BX000C-----------------------
  5681. INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
  5682.     AX = FF80h
  5683.     BX = 000Ch
  5684.     CX = new delay time in minutes
  5685. --------T-16FF80BX4350-----------------------
  5686. INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
  5687.     AX = FF80h
  5688.     BX = 4350h ('CP')
  5689.     CX = 5354h ('ST')
  5690. Return: never returns; terminates all tasks and exits to program originally
  5691.       calling CPTASK
  5692. --------U-16FF90-----------------------------
  5693. INT 16 U - PC Tools v8+ DESKTOP - ???
  5694.     AX = FF90h
  5695.     ???
  5696. Return: ???
  5697. Note:    available only when popped up
  5698. --------U-16FF91-----------------------------
  5699. INT 16 U - PC Tools v7+ DESKTOP - ???
  5700.     AX = FF91h
  5701.     ???
  5702. Return: AX = 0000h
  5703. Note:    calls AX=FFFDh after ???
  5704. SeeAlso: AX=FF92h,AX=FFFDh
  5705. --------U-16FF92-----------------------------
  5706. INT 16 U - PC Tools v7+ DESKTOP - ???
  5707.     AX = FF92h
  5708.     ???
  5709. Return: AX = 0000h
  5710. Note:    like AX=FF91h, but temporarily sets ??? to 3
  5711. SeeAlso: AX=FF91h,AX=FFFDh
  5712. --------U-16FF93-----------------------------
  5713. INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
  5714.     AX = FF93h
  5715. --------U-16FF94-----------------------------
  5716. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  5717.     AX = FF94h
  5718.     CX = ??? (default 0017h)
  5719. --------U-16FF95-----------------------------
  5720. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  5721.     AX = FF95h
  5722.     BX = ???
  5723. --------U-16FF96-----------------------------
  5724. INT 16 U - PC Tools v7+ DESKTOP - ???
  5725.     AX = FF96h
  5726.     CL = ???
  5727. Return: AX = ???
  5728. --------U-16FF97-----------------------------
  5729. INT 16 U - PC Tools v7+ DESKTOP - ???
  5730.     AX = FF97h
  5731.     DS:DX -> buffer for ??? (see #0476)
  5732. Return: ???
  5733.  
  5734. Format of PC Tools DESKTOP buffer:
  5735. Offset    Size    Description    (Table 0476)
  5736.  00h 48 BYTEs    ???
  5737.  30h 128 BYTEs    ???
  5738. --------U-16FF98-----------------------------
  5739. INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
  5740.     AX = FF98h
  5741.     DX = byte offset in file of overlay header (see #0477)
  5742. Return: BX = file handle for DESK.OVL file
  5743. Desc:    open the DESK.OVL file, seek to the specified offset, read in the
  5744.       overlay header, and seek to the offset specified by the header
  5745.  
  5746. Format of PC Tools DESKTOP overlay header:
  5747. Offset    Size    Description    (Table 0477)
  5748.  00h 12 BYTEs    NUL-padded ASCII overlay filename
  5749.  0Ch    DWORD    offset within DESK.OVL file of actual overlay
  5750. --------U-16FF99-----------------------------
  5751. INT 16 U - PC Tools v7+ DESKTOP - ???
  5752.     AX = FF99h
  5753.     ???
  5754. Return: ???
  5755. --------U-16FF9A-----------------------------
  5756. INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
  5757.     AX = FF9Ah
  5758. Return: ES:BX -> name of current color scheme
  5759. Note:    available even if not popped up
  5760. --------U-16FF9B-----------------------------
  5761. INT 16 U - PC Tools v7+ DESKTOP - UNUSED
  5762.     AX = FF9Bh
  5763. Return: ???
  5764. Note:    sounds triple-length beep
  5765. --------T-16FF9C-----------------------------
  5766. INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
  5767.     AX = FF9Ch
  5768.     BL = function
  5769.         00h set ??? pointer
  5770.         DS:SI -> ???
  5771.         01h clear pointer to 0000h:0000h
  5772. ----------16FF9D-----------------------------
  5773. INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
  5774.     AX = FF9Dh
  5775.     ES:BX -> ??? word
  5776. Return: ???
  5777. Note:    if ES is non-zero, the word pointed at by ES:BX determines whether the
  5778.       ??? flag is cleared (word = 0000h) or set (word is nonzero).    The
  5779.       flag is always cleared if ES=0000h.
  5780. --------U-16FF9E-----------------------------
  5781. INT 16 U - PC Tools v7+ DESKTOP - ???
  5782.     AX = FF9Eh
  5783.     DL = ???
  5784.         bit 7: ???
  5785.         bits 6-0: function number??? (00h,01h,other)
  5786.     ???
  5787. Return: ???
  5788. --------U-16FFA1-----------------------------
  5789. INT 16 U - PC Tools v7+ DESKTOP - ???
  5790.     AX = FFA1h
  5791.     ???
  5792. Return: ???
  5793. Note:    same as AX=FFA2h, except ??? set to FFh
  5794. SeeAlso: AX=FFA2h
  5795. --------U-16FFA2-----------------------------
  5796. INT 16 U - PC Tools v7+ DESKTOP - ???
  5797.     AX = FFA2h
  5798.     ???
  5799. Return: ???
  5800. Note:    calls AX=FFC7h (remove window) and AX=FFFDh
  5801. SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
  5802. --------y-16FFA3BX0000-----------------------
  5803. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  5804.     AX = FFA3h
  5805.     BX = 0000h
  5806.     CX = 0000h
  5807. Return: AX = segment of resident code
  5808.     BX = 5555h
  5809.     CX = 5555h
  5810. Note:    also supported by DOS 6 UNDELETE which is licensed from PC Tools
  5811. SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
  5812. --------y-16FFA3BX0001-----------------------
  5813. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  5814.     AX = FFA3h
  5815.     BX = 0001h
  5816.     CX = 0001h
  5817. Return: AX:BX -> ???
  5818.     CX = BX
  5819. --------y-16FFA3BX0002-----------------------
  5820. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  5821.     AX = FFA3h
  5822.     BX = 0002h
  5823.     CX = 0002h
  5824. Return: AX = ??? (0 or 1)
  5825.     CX = BX = AX
  5826. --------y-16FFA3BX0003-----------------------
  5827. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  5828.     AX = FFA3h
  5829.     BX = 0003h
  5830.     CX = 0003h
  5831. Return: AX = ??? (0 or 1)
  5832.     CX = BX = AX
  5833. --------y-16FFA3BX0004-----------------------
  5834. INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
  5835.     AX = FFA3h
  5836.     BX = 0004h
  5837.     CX = 0004h
  5838. SeeAlso: AX=FFA3h/BX=0005h
  5839. --------y-16FFA3BX0005-----------------------
  5840. INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
  5841.     AX = FFA3h
  5842.     BX = 0005h
  5843.     CX = 0005h
  5844. SeeAlso: AX=FFA3h/BX=0004h
  5845. --------y-16FFA3BX0006-----------------------
  5846. INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
  5847.     AX = FFA3h
  5848.     BX = 0006h
  5849.     CX = 0006h
  5850.     DX = current PSP segment as known to DOS??? or 0000h
  5851. ----------16FFA3BXFFA3-----------------------
  5852. INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
  5853.     AX = FFA3h
  5854.     BX = FFA3h
  5855.     CX = FFA3h
  5856. Return: BX = CX = 5555h if installed
  5857.         AX = resident code segment
  5858. Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
  5859.       access indicator on the screen; in v7 and v8, this function was
  5860.       provided by DATAMON
  5861. Note:    DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
  5862. --------U-16FFA4-----------------------------
  5863. INT 16 U - PC Tools v7-8 DESKTOP - ???
  5864.     AX = FFA4h
  5865. Return: ???
  5866. Notes:    available even when not popped up
  5867.     sets unknown flag if ??? conditions met
  5868. SeeAlso: AX=FEA4h
  5869. --------c-16FFA5CX1111-----------------------
  5870. INT 16 - PC-Cache v6+ - INSTALLATION CHECK
  5871.     AX = FFA5h
  5872.     CX = 1111h
  5873. Return: CH = 00h if installed
  5874.         ES:DI -> internal data (see #0478)
  5875.         CL = cache state
  5876.         01h enabled
  5877.         02h disabled
  5878. SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
  5879.  
  5880. Format of PC-Cache internal data:
  5881. Offset    Size    Description    (Table 0478)
  5882. -1Ch 20 BYTEs    cached drive list, one byte per drive A: to T:
  5883.         each byte is either blank (20h) or drive letter (41h-54h)
  5884.  -8    BYTE    ???
  5885.  -7    WORD    number of physical transfers (scaled down to 0000h-7FFFh)
  5886.  -5    WORD    number of saved transfers (scaled down to 0000h-7FFFh)
  5887.  -3   3 BYTEs    ???
  5888. --------c-16FFA5CXAAAA-----------------------
  5889. INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
  5890.     AX = FFA5h
  5891.     CX = AAAAh
  5892. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  5893. SeeAlso: AX=FFA5h/CX=CCCCh
  5894. --------c-16FFA5CXCCCC-----------------------
  5895. INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
  5896.     AX = FFA5h
  5897.     CX = CCCCh
  5898. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  5899. Note:    delayed writes are automatically disabled on EXECing
  5900.       (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  5901.       however, delayed writes are not automatically reenabled upon the
  5902.       program's termination in v6.
  5903. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
  5904. --------c-16FFA5CXDDDD-----------------------
  5905. INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
  5906.     AX = FFA5h
  5907.     CX = DDDDh
  5908. SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
  5909. --------c-16FFA5CXEEEE-----------------------
  5910. INT 16 - PC-Cache v6+ - ENABLE CACHE
  5911.     AX = FFA5h
  5912.     CX = EEEEh
  5913. SeeAlso: AX=FFA5h/CX=DDDDh
  5914. --------c-16FFA5CXFFFF-----------------------
  5915. INT 16 - PC-Cache v6+ - FLUSH CACHE
  5916.     AX = FFA5h
  5917.     CX = FFFFh
  5918. SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
  5919. --------U-16FFA6-----------------------------
  5920. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  5921.     AX = FFA6h
  5922. Return: DS:SI -> ???
  5923. Note:    available only when popped up
  5924. --------U-16FFA7-----------------------------
  5925. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
  5926.     AX = FFA7h
  5927. Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
  5928. --------U-16FFA8-----------------------------
  5929. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  5930.     AX = FFA8h
  5931.     DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
  5932.     ???
  5933. Return: ???
  5934. Notes:    available only when popped up
  5935.     strings copied into internal buffer, among other actions
  5936. --------U-16FFA9-----------------------------
  5937. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
  5938.     AX = FFA9h
  5939. Return: DS:SI -> version string
  5940. --------U-16FFAA-----------------------------
  5941. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  5942.     AX = FFAAh
  5943.     ???
  5944. Return: ???
  5945. Note:    available only when popped up
  5946. --------U-16FFAB-----------------------------
  5947. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
  5948.     AX = FFABh
  5949. Return: DS:SI -> editor setting strings???
  5950. --------U-16FFAC-----------------------------
  5951. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5952.     AX = FFACh
  5953.     DL = ???
  5954. Note:    available only when popped up
  5955. --------U-16FFAD-----------------------------
  5956. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5957.     AX = FFADh
  5958.     DL = ???
  5959. --------U-16FFAE-----------------------------
  5960. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  5961.     AX = FFAEh
  5962. Return: AL = ???
  5963. --------U-16FFAF-----------------------------
  5964. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5965.     AX = FFAFh
  5966.     DL = ???
  5967. --------U-16FFB0-----------------------------
  5968. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  5969.     AX = FFB0h
  5970.     BL = ???
  5971. --------U-16FFB1-----------------------------
  5972. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  5973.     AX = FFB1h
  5974.     ???
  5975. Return: ???
  5976. --------U-16FFB2-----------------------------
  5977. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  5978.     AX = FFB2h
  5979. Return: DS:SI -> ???
  5980. --------U-16FFB3-----------------------------
  5981. INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
  5982.     AX = FFB3h
  5983.     ???
  5984. Return: ???
  5985. Note:    available only when popped up
  5986. --------U-16FFB4-----------------------------
  5987. INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
  5988.     AX = FFB4h
  5989. Note:    available only when popped up
  5990. SeeAlso: AX=FFBBh
  5991. --------U-16FFB5-----------------------------
  5992. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
  5993.     AX = FFB5h
  5994.     BX = window specifier (000Fh to 0019h) (see #0479)
  5995.     DX = 0000h get, nonzero = set
  5996.     ES:DI -> window parameter buffer (see #0480)
  5997. SeeAlso: AX=FFCBh
  5998.  
  5999. (Table 0479)
  6000. Values for PC Tools DESKTOP window specifier:
  6001.  000Fh    comm/FAX
  6002.  0014h    hotkey selection
  6003.  0015h    ASCII table
  6004.  0016h    system colors menu
  6005.  
  6006. Format of PC Tools DESKTOP window parameters:
  6007. Offset    Size    Description    (Table 0480)
  6008.  00h    BYTE    rows in window, not counting frame
  6009.  01h    BYTE    columns in window, not counting frame
  6010.  02h    BYTE    row number of top of window
  6011.  03h    BYTE    2*column number of left of window
  6012.  04h    BYTE    character attribute for ???
  6013.  05h    BYTE    character attribute for background/border
  6014.  06h    BYTE    character attribute for ???
  6015.  07h    DWORD    pointer to ??? on screen
  6016.  0Bh  4 BYTEs    ???
  6017.  0Fh    BYTE    nonzero if window may be resized
  6018. Note:    if running in monochrome mode, character attributes at offsets 04h to
  6019.       06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  6020.       are changed to 07h on reading
  6021. --------U-16FFB6-----------------------------
  6022. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  6023.     AX = FFB6h
  6024. Return: AH = ???
  6025.     AL = ???
  6026. --------U-16FFB7-----------------------------
  6027. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
  6028.     AX = FFB7h
  6029.     BX = direction
  6030.         0000h copy to buffer
  6031.         else  copy from buffer
  6032.     DS:SI -> 70-byte buffer with ???
  6033. Return: data copied
  6034. Note:    available only when popped up under v6.0+
  6035. --------U-16FFB8-----------------------------
  6036. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
  6037.     AX = FFB8h
  6038.     BH = subfunction
  6039.         00h get
  6040.         Return: BL = old value of ???
  6041.             CL = old value of ??? (v6.0+)
  6042.             CH = old value of ??? (v6.0+)
  6043.         nonzero set
  6044.         BL = new value for ???
  6045.         CL = new value for ??? (v6.0+)
  6046.         CH = new value for ??? (v6.0+)
  6047.         DH = ???
  6048.         Return: AL = old value replaced by CL (v6.0+)
  6049.             AH = old value replaced by CH (v6.0+)
  6050. --------U-16FFB9-----------------------------
  6051. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6052.     AX = FFB9h
  6053.     ???
  6054. Return: AX = ???
  6055.     CX = ???
  6056.     DS:SI -> ???
  6057.     ES:DI -> ???
  6058. --------U-16FFBA-----------------------------
  6059. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6060.     AX = FFBAh
  6061.     ???
  6062. Return: AX = ???
  6063. Note:    available only when popped up
  6064. --------U-16FFBB-----------------------------
  6065. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
  6066.     AX = FFBBh
  6067. Note:    available only when popped up
  6068. SeeAlso: AX=FFB4h
  6069. --------U-16FFBC-----------------------------
  6070. INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
  6071.     AX = FFBCh
  6072. --------U-16FFBD-----------------------------
  6073. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
  6074.     AX = FFBDh
  6075.     ???
  6076. Return: ???
  6077. --------U-16FFBE-----------------------------
  6078. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6079.     AX = FFBEh
  6080.     ???
  6081. Return: ???
  6082. Note:    available only when popped up
  6083. --------U-16FFBF-----------------------------
  6084. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6085.     AX = FFBFh
  6086.     BX = DOS file handle to write on
  6087.     ???
  6088. Return: ???
  6089. Note:    available only when popped up
  6090. --------U-16FFC0-----------------------------
  6091. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6092.     AX = FFC0h
  6093.     ???
  6094. Return: AX = 0000h if successful
  6095.     AX = FFFFh on error
  6096. Note:    available only when popped up
  6097. --------U-16FFC1-----------------------------
  6098. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6099.     AX = FFC1h
  6100.     BL = ???
  6101.     ES:DI -> data structure (see #0481)
  6102.     ???
  6103. Return: AX = ???
  6104. Note:    available only when popped up
  6105. SeeAlso: AX=FFC2h,AX=FFC3h
  6106.  
  6107. Format of PC Tools DESKTOP data structure:
  6108. Offset    Size    Description    (Table 0481)
  6109.  00h    WORD    ???
  6110.  02h    WORD    ???
  6111.  04h    WORD    ???
  6112.  06h    WORD    ???
  6113.  08h    WORD    ???
  6114.  0Ah    BYTE    ???
  6115.  0Bh    BYTE    ??? (zero/nonzero)
  6116. ---v7.1---
  6117.  0Ch    WORD    ???
  6118.  0Eh    BYTE    ???
  6119.  0Fh    WORD    ???
  6120.  11h    WORD    ???
  6121.     ???
  6122. --------U-16FFC2-----------------------------
  6123. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6124.     AX = FFC2h
  6125.     BL = ???
  6126.     ES:DI -> data structure (see #0481)
  6127.     ???
  6128. Return: AH = ???
  6129.     CX = ???
  6130.     DH = ???
  6131.     DL = ???
  6132. Note:    available only when popped up
  6133. SeeAlso: AX=FFC1h,AX=FFC3h
  6134. --------U-16FFC3-----------------------------
  6135. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6136.     AX = FFC3h
  6137.     BL = ???
  6138.     ES:DI -> data structure (see #0481)
  6139.     ???
  6140. Return: AH = ???
  6141.     CX = ???
  6142.     DH = ???
  6143.     DL = ???
  6144. Note:    available only when popped up
  6145. SeeAlso: AX=FFC1h,AX=FFC2h
  6146. --------U-16FFC4-----------------------------
  6147. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  6148.     AX = FFC4h
  6149. Return: AL = ???
  6150.     BX = segment of scratch space???
  6151.     CX = segment of stored screen data (section covered by window???)
  6152.     DX = segment of window parameters for ???
  6153.     ES:BP -> ???
  6154. Note:    available only when popped up in versions prior to 6.0
  6155. --------U-16FFC5-----------------------------
  6156. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
  6157.     AX = FFC5h
  6158. Return: BL = Desktop state
  6159.         00h if nonresident
  6160.         nonzero if loaded resident
  6161. Note:    available only when popped up; should call AX=FFEFh first to ensure
  6162.       that DESKTOP is active
  6163. SeeAlso: AX=FFEFh,AX=FFF3h
  6164. --------U-16FFC6-----------------------------
  6165. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  6166.     AX = FFC6h
  6167.     BL = new value for ???
  6168. --------U-16FFC7-----------------------------
  6169. INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
  6170.     AX = FFC7h
  6171.     ???
  6172. Return: ???
  6173. --------U-16FFC8-----------------------------
  6174. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  6175.     AX = FFC8h
  6176. Return: DS:SI -> ???
  6177. Note:    valid only while popped up
  6178. --------U-16FFC9-----------------------------
  6179. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
  6180.     AX = FFC9h
  6181.     DS:SI -> characters to store in clipboard
  6182.     CX = size in bytes
  6183. Return: CF set on error
  6184. Notes:    available only when popped up
  6185.     while copying, bytes of 00h and 0Ah are skipped
  6186. --------U-16FFCA-----------------------------
  6187. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  6188.     AX = FFCAh
  6189.     DX = ???
  6190. Return: AX destroyed
  6191. Note:    available only when popped up
  6192. --------U-16FFCB-----------------------------
  6193. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
  6194.     AX = FFCBh
  6195.     DX = window specifier???
  6196. Return: AX destroyed
  6197. Note:    available only when popped up
  6198. SeeAlso: AX=FFB5h
  6199. --------U-16FFCC-----------------------------
  6200. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
  6201.     AX = FFCCh
  6202.     DS:SI -> ASCIZ string
  6203. Return: AX = ???
  6204.     CX = ???
  6205.     ES:DI -> address past last character displayed (v5.1/5.5)
  6206.           -> ??? on menu bar (v6.0)
  6207. --------U-16FFCD-----------------------------
  6208. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6209.     AX = FFCDh
  6210.     DS:DX -> ???
  6211. Return: ???
  6212. Note:    available only when popped up
  6213. --------U-16FFCE-----------------------------
  6214. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
  6215.     AX = FFCEh
  6216.     CX = ???
  6217. Return: nothing???
  6218. --------U-16FFCF-----------------------------
  6219. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
  6220.     AX = FFCFh
  6221. Note:    available only when popped up
  6222. --------U-16FFD0-----------------------------
  6223. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
  6224.     AX = FFD0h
  6225.     ???
  6226. Return: ???
  6227. Note:    available only when popped up
  6228. --------U-16FFD1-----------------------------
  6229. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
  6230.     AX = FFD1h
  6231. Return: BX = number of copies
  6232.     DX = destination
  6233.         00h cancel
  6234.         01h LPT1
  6235.         02h LPT2
  6236.         03h LPT3
  6237.         04h COM1
  6238.         05h COM2
  6239.         06h disk file
  6240. Note:    available only when popped up
  6241. --------U-16FFD2-----------------------------
  6242. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6243.     AX = FFD2h
  6244.     BX = ???
  6245. Return: BL = ???
  6246. Note:    available only when popped up
  6247. --------U-16FFD3-----------------------------
  6248. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6249.     AX = FFD3h
  6250.     DS:SI -> 92-byte data record for ???
  6251. Return: ???
  6252. SeeAlso: AX=FED3h
  6253. --------U-16FFD4BH3C-------------------------
  6254. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
  6255.     AX = FFD4h
  6256.     BH = 3Ch create file (with no attributes)
  6257.          3Dh open file
  6258.          41h delete file
  6259.     BL = access mode
  6260.          00h read only
  6261.          01h write only
  6262.          02h read/write
  6263.     DS:SI -> ASCIZ filename
  6264. Return: BX = file handle
  6265.         0000h on error
  6266. Note:    operation is attempted in (in order) the directory from which the
  6267.       desktop was started/run???, the directory specified with the
  6268.       filename, X:\PCTOOLS\, and X:\
  6269. --------U-16FFD5-----------------------------
  6270. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6271.     AX = FFD5h
  6272.     ???
  6273. Return: ???
  6274. Note:    available only when popped up
  6275. --------U-16FFD6-----------------------------
  6276. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6277.     AX = FFD6h
  6278.     BX = ???
  6279.     CX = ???
  6280.     DX = offset in ???
  6281.     ???
  6282. Return: ???
  6283. Note:    available only when popped up
  6284. --------U-16FFD7-----------------------------
  6285. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6286.     AX = FFD7h
  6287.     ???
  6288. Return: BL = ???
  6289. Note:    available only when popped up
  6290. --------U-16FFD8-----------------------------
  6291. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
  6292.     AX = FFD8h
  6293.     DS:BX -> ASCIZ filename
  6294. Return: BX = file handle
  6295.         0000h on error
  6296. Note:    pops up confirmation menu if file already exists
  6297.     only available when popped up???
  6298. --------U-16FFD9-----------------------------
  6299. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  6300.     AX = FFD9h
  6301. Return: AX = ???
  6302. Note:    available only when popped up
  6303. --------U-16FFDA-----------------------------
  6304. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
  6305.     AX = FFDAh
  6306.     DS:SI -> ??? (v5.1/5.5 only)
  6307. Return: DS:SI -> filename
  6308. --------U-16FFDB-----------------------------
  6309. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  6310.     AX = FFDBh
  6311.     BL = ???
  6312. Note:    available only when popped up
  6313. --------U-16FFDC-----------------------------
  6314. INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
  6315.     AX = FFDCh
  6316. Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  6317.       original values
  6318. Index:    uninstall;PC Tools DESKTOP
  6319. --------U-16FFDDBX0000-----------------------
  6320. INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
  6321.     AX = FFDDh
  6322.     BX = 0000h
  6323. Return: CX = 5555h
  6324.     DX = 5555h if PCShell installed in resident mode
  6325. --------U-16FFDDBX0001-----------------------
  6326. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  6327.     AX = FFDDh
  6328.     BX = 0001h
  6329. Return: CF clear if request successful (PCShell will pop up)
  6330.     CF set on error
  6331. SeeAlso: AX=FFDDh/BX=0003h
  6332. --------U-16FFDDBX0002-----------------------
  6333. INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
  6334.     AX = FFDDh
  6335.     BX = 0002h
  6336. Return: AL =
  6337.         00h ???
  6338.         01h ???
  6339. Note:    PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  6340.       awaits a keystroke, and aborts the current process
  6341. --------U-16FFDDBX0003-----------------------
  6342. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  6343.     AX = FFDDh
  6344.     BX = 0003h
  6345. SeeAlso: AX=FFDDh/BX=0001h
  6346. --------U-16FFDDBX0004-----------------------
  6347. INT 16 U - PC Tools v5.1+ PCShell API - GET ???
  6348.     AX = FFDDh
  6349.     BX = 0004h
  6350. Return: CF clear if successful
  6351.         DS:SI -> ???
  6352. --------U-16FFDDBX0005-----------------------
  6353. INT 16 U - PC Tools v5.1+ PCShell API - ???
  6354.     AX = FFDDh
  6355.     BX = 0005h
  6356.     ???
  6357. Return: ???
  6358. Note:    resets various variables if certain conditions are met
  6359. --------U-16FFDDBX0006-----------------------
  6360. INT 16 U - PC Tools v5.1+ PCShell API - ???
  6361.     AX = FFDDh
  6362.     BX = 0006h
  6363.     ???
  6364. Return: ???
  6365. Note:    resets various variables if certain conditions are met
  6366. --------U-16FFDDBX0007-----------------------
  6367. INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
  6368.     AX = FFDDh
  6369.     BX = 0007h
  6370. Return: CF clear if successful
  6371. SeeAlso: AX=FFDDh/BX=0008h
  6372. --------U-16FFDDBX0008-----------------------
  6373. INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
  6374.     AX = FFDDh
  6375.     BX = 0008h
  6376. Return: CF undefined
  6377. SeeAlso: AX=FFDDh/BX=0007h
  6378. --------U-16FFDDBX0009-----------------------
  6379. INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
  6380.     AX = FFDDh
  6381.     BX = 0009h
  6382. Return: CF clear if successful
  6383.         DS:SI -> list of pointers (see #0482)
  6384.  
  6385. Format of PC Tools PCShell returned pointer list:
  6386. Offset    Size    Description    (Table 0482)
  6387.  00h    WORD    offset of WORD containing ???
  6388.  02h    WORD    offset of name of program to execute
  6389.  04h    WORD    offset of 80-byte buffer for ???
  6390.  06h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  6391.  08h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  6392. --------U-16FFDDBX000A-----------------------
  6393. INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
  6394.     AX = FFDDh
  6395.     BX = 000Ah
  6396. Return: CX = 5555h if running
  6397.     DX = 5555h
  6398. Note:    also sets a flag
  6399. --------U-16FFDDBX000B-----------------------
  6400. INT 16 U - PC Tools v6.0+ PCRUN API - ???
  6401.     AX = FFDDh
  6402.     BX = 000Bh
  6403.     ???
  6404. Return: CX = 5555h if PCRUN active
  6405.     DX = 5555h
  6406. Note:    also clears flag set by AX=FFDDh/BX=000Ah
  6407. --------U-16FFDE-----------------------------
  6408. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
  6409.     AX = FFDEh
  6410.     DS:DX -> menu description (must be on a paragraph boundary)
  6411. Return: AX = ???
  6412.         AL seems to be the number of the selected button
  6413. Note:    available only when popped up
  6414. SeeAlso: AX=FFEEh
  6415. --------U-16FFDF-----------------------------
  6416. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6417.     AX = FFDFh
  6418.     ???
  6419. Return: ???
  6420. --------U-16FFE0-----------------------------
  6421. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6422.     AX = FFE0h
  6423.     CX = ???
  6424.     DX = ???
  6425. Note:    available only when popped up
  6426. --------U-16FFE1-----------------------------
  6427. INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
  6428.     AX = FFE1h
  6429. --------U-16FFE2-----------------------------
  6430. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6431.     AX = FFE2h
  6432.     DX = ???
  6433. Return: ???
  6434. Note:    available only when popped up
  6435. --------U-16FFE3-----------------------------
  6436. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
  6437.     AX = FFE3h
  6438.     BL = character to print to currently open printer or print file
  6439. Return: CF set on error
  6440. Note:    available only when popped up
  6441. SeeAlso: INT 17/AH=00h
  6442. --------U-16FFE4-----------------------------
  6443. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6444.     AX = FFE4h
  6445.     DX = segment of ???
  6446. Return: ???
  6447. Note:    available only when popped up
  6448. --------U-16FFE5-----------------------------
  6449. INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
  6450.     AX = FFE5h
  6451.     DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
  6452.     DX = segment of window parameters???
  6453. Return: AX = DOS file handle for file
  6454.         DS:DX -> filename???
  6455.         FFFFh if function cancelled by user
  6456. Note:    available only when popped up
  6457. SeeAlso: AX=FFDAh
  6458. --------U-16FFE6-----------------------------
  6459. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
  6460.     AX = FFE6h
  6461. Return: AX = 0000h if no key available
  6462.          else  BIOS keycode
  6463. Notes:    available only when popped up
  6464.     invokes INT 28 idle interrupt before checking for key
  6465. --------U-16FFE7-----------------------------
  6466. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6467.     AX = FFE7h
  6468.     BX = segment of ???
  6469. Return: ???
  6470. Note:    available only when popped up
  6471. --------U-16FFE8-----------------------------
  6472. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
  6473.     AX = FFE8h
  6474.     CX = number
  6475.     DH = attribute
  6476.     DS:SI -> destination for ASCII number
  6477. Return: DS:SI buffer filled in with alternating characters and attributes
  6478. --------U-16FFE9-----------------------------
  6479. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
  6480.     AX = FFE9h
  6481. Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
  6482. Note:    available only when popped up
  6483. --------U-16FFEA-----------------------------
  6484. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
  6485.     AX = FFEAh
  6486.     DS:SI -> counted string (count byte followed by string)
  6487. Return: ???
  6488. Note:    available only when popped up
  6489. --------U-16FFEB-----------------------------
  6490. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6491.     AX = FFEBh
  6492.     ???
  6493. Return: ???
  6494. --------U-16FFEC-----------------------------
  6495. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
  6496.     AX = FFECh
  6497.     DS:SI -> FAR routine to ???
  6498.     BX = ???
  6499.     ???
  6500. Return: AX = keystroke
  6501.         FFFFh if F10 pressed to go to menu
  6502. Notes:    available only when popped up
  6503.     invokes INT 28 while waiting for keystroke
  6504.     F10 is hotkey to Desktop menu
  6505. Index:    hotkeys;PC Tools DESKTOP
  6506. --------U-16FFED-----------------------------
  6507. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  6508.     AX = FFEDh
  6509. Return: AX = ???
  6510. Note:    available only when popped up
  6511. --------U-16FFEE-----------------------------
  6512. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
  6513.     AX = FFEEh
  6514.     DS:SI -> pulldown menu system description (see #0483)
  6515. Return: AX destroyed
  6516. Notes:    available only when popped up
  6517.     if the accessory does not need any menu items of its own, it should
  6518.       call AX=FFFAh instead
  6519. SeeAlso: AX=FFF7h,AX=FFFAh
  6520.  
  6521. Format of PC Tools DESKTOP pulldown menu system description:
  6522. Offset    Size    Description    (Table 0483)
  6523.  00h    WORD    offset of menu bar contents (counted string)
  6524.  02h    WORD    number of items on menu bar
  6525.  04h 10 BYTEs    scan codes for hotkeying to each of up to ten menu items
  6526.  0Eh 10 BYTEs    which character to highlight in each menu item (01h=first)
  6527.  18h    WORD    offset of first menu definition (see #0484)
  6528.  1Ah    WORD    offset of second menu definition
  6529.     ...
  6530.  
  6531. Format of PC Tools DESKTOP menu definition:
  6532. Offset    Size    Description    (Table 0484)
  6533.  00h    WORD    offset of menu contents (see #0485)
  6534.  02h    WORD    number of entries in menu
  6535.  04h    for each entry:
  6536.         Offset    Size    Description
  6537.          00h    BYTE    scancode of Alt-key to invoke entry
  6538.          01h    BYTE    character to highlight (01h=first, etc)
  6539.          02h    WORD    offset of FAR routine to handle selection
  6540.  
  6541. Format of PC Tools DESKTOP menu contents:
  6542. Offset    Size    Description    (Table 0485)
  6543.  00h    BYTE    number of lines in menu
  6544.  01h    BYTE    width of menu
  6545.  02h  N BYTEs    counted strings, one for each line in menu
  6546. --------U-16FFEFCX0000-----------------------
  6547. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
  6548.     AX = FFEFh
  6549.     CX = 0000h
  6550. Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
  6551.         BX = segment of resident portion
  6552.         AX = ??? (v5.1/5.5 only)
  6553. SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
  6554. --------U-16FFF0-----------------------------
  6555. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  6556.     AX = FFF0h
  6557.     DX = ???
  6558. Return: AX destroyed
  6559. Note:    available only when popped up
  6560. --------U-16FFF1BX0000-----------------------
  6561. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
  6562.     AX = FFF1h
  6563.     BX = 0000h  leave ??? flag as is
  6564.         nonzero set ??? flag
  6565. Return: CX = 5555h if installed
  6566.     DX = 5555h
  6567. --------U-16FFF2-----------------------------
  6568. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
  6569.     AX = FFF2h
  6570.     DS:SI -> ASCIZ function key label string (each label preceded by '[')
  6571.         or help text
  6572. Return: AX destroyed
  6573. Notes:    available only when popped up
  6574.     if the specified string does not start with '[', it is displayed
  6575.       centered on the bottom line, else the function key labels are shown
  6576. --------U-16FFF3-----------------------------
  6577. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
  6578.     AX = FFF3h
  6579. Note:    releases any EMS being used; restores video mode, page, and cursor
  6580.       shape; and restores interrupt vectors
  6581. SeeAlso: AX=FFC5h,AX=FFEFh
  6582. Index:    uninstall;PC Tools DESKTOP
  6583. --------U-16FFF4-----------------------------
  6584. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  6585.     AX = FFF4h
  6586.     ???
  6587. Return: ???
  6588. Note:    available only when popped up
  6589. SeeAlso: AX=FFF6h
  6590. --------U-16FFF5-----------------------------
  6591. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
  6592.     AX = FFF5h
  6593. Return: ES:BX -> screen attributes data structure (see #0486)
  6594.     AL = ??? (v6.0+)
  6595.  
  6596. Format of PC Tools DESKTOP attribute data structure:
  6597. Offset    Size    Description    (Table 0486)
  6598.  -1    BYTE    attribute for desktop background
  6599.  00h    BYTE    attribute for normal characters on desktop menu
  6600.  01h    BYTE    attribute for highlighted characters on desktop menu
  6601.  02h  5 BYTEs    ???
  6602.  07h    BYTE    attribute for dialog boxes
  6603.  08h 15 BYTEs    ???
  6604.  17h    BYTE    attribute for message boxes
  6605. --------U-16FFF6-----------------------------
  6606. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
  6607.     AX = FFF6h
  6608.     DS = segment of editor buffer structure (see #0487)
  6609.     BX = ???
  6610.     DX = segment of window parameters structure (see #0480)
  6611. Return: ???
  6612. Note:    available only when popped up
  6613. SeeAlso: AX=FFF4h
  6614.  
  6615. Format of PC Tools DESKTOP editor buffer structure:
  6616. Offset    Size    Description    (Table 0487)
  6617.  00h    WORD    offset of current cursor position in buffer segment
  6618.  02h  2 BYTEs    ???
  6619.  04h    WORD    offset of beginning of file data in buffer segment
  6620.  06h 10 BYTEs    ???
  6621.  10h  N BYTEs    ASCIZ name of file being edited
  6622. --------U-16FFF7-----------------------------
  6623. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
  6624.     AX = FFF7h
  6625.     DS:SI -> ???
  6626.     ???
  6627. Return: ???
  6628. Notes:    available only when popped up
  6629.     performs input processing on the menu bar set up with AX=FFEEh
  6630. SeeAlso: AX=FFEEh,AX=FFFBh
  6631. --------U-16FFF8-----------------------------
  6632. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
  6633.     AX = FFF8h
  6634.     DS:0000h -> window parameters structure (see #0480)
  6635.     DS:BX -> DWORD to store address of ??? on screen
  6636. Return: ???
  6637. --------U-16FFF9-----------------------------
  6638. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
  6639.     AX = FFF9h
  6640.     ES:BX -> FAR routine to redisplay the utility's window
  6641. Note:    available only when popped up
  6642. --------U-16FFFA-----------------------------
  6643. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
  6644.     AX = FFFAh
  6645. Notes:    available only when popped up
  6646.     adds the "Window" option to the "Desktop" option which is the only one
  6647.       available when no accessories are active.  Unlike AX=FFEEh, no
  6648.       additional menu items are added between "Desktop" and "Window"
  6649. SeeAlso: AX=FFEEh,AX=FFFBh
  6650. --------U-16FFFB-----------------------------
  6651. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
  6652.     AX = FFFBh
  6653. Return: ???
  6654. Notes:    available only when popped up
  6655.     performs input processing on the standard menu bar set up with AX=FFFAh
  6656. SeeAlso: AX=FFF7h
  6657. --------U-16FFFC-----------------------------
  6658. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
  6659.     AX = FFFCh
  6660. Return: ES:BX -> hotkey table (see #0488)
  6661.     DS:DX = original INT 09 vector
  6662.  
  6663. Format of PC Tools DESKTOP hotkey table:
  6664. Offset    Size    Description    (Table 0488)
  6665.  00h  2 BYTEs    scancode/shift state for desktop hotkey
  6666.  02h  2 BYTEs    scancode/shift state for clipboard paste key
  6667.  04h  2 BYTEs    scancode/shift state for clipboard copy key
  6668.  06h  2 BYTEs    scancode/shift state for screen autodial key
  6669. --------U-16FFFD-----------------------------
  6670. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
  6671.     AX = FFFDh
  6672. Return: AX destroyed
  6673. Note:    copies 4000 bytes from ??? to ??? under certain circumstances
  6674. SeeAlso: AX=FF91h,AX=FF92h
  6675. --------M-16FFFE-----------------------------
  6676. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
  6677.     AX = FFFEh
  6678. SeeAlso: AX=FFFFh,INT 33/AX=0001h
  6679. --------M-16FFFF-----------------------------
  6680. INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
  6681.     AX = FFFFh
  6682. SeeAlso: AX=FFFEh,INT 33/AX=0002h
  6683. --------P-17----DX0ABC-----------------------
  6684. INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
  6685.     DX = 0ABCh
  6686. Return: AX = AAAAh
  6687.     DX = BAAAh
  6688.     ES = code segment of resident portion
  6689. --------P-17----DX0B90-----------------------
  6690. INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
  6691.     DX = 0B90h
  6692. Return: DX = ABBBh
  6693.     ES = code segment of resident portion
  6694. --------P-17----DX0B91-----------------------
  6695. INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
  6696.     DX = 0B91h
  6697. Return: DX = ABCBh
  6698.     ES = code segment of resident portion
  6699. --------P-17----DX0F5F-----------------------
  6700. INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
  6701.     DX = 0F5Fh
  6702. Return: AX = AAAAh
  6703.     DX = F555h
  6704.     ES = code segment of resident portion
  6705. --------B-1700-------------------------------
  6706. INT 17 - PRINTER - WRITE CHARACTER
  6707.     AH = 00h
  6708.     AL = character to write
  6709.     DX = printer number (00h-02h)
  6710. Return: AH = printer status (see #0489)
  6711. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
  6712.  
  6713. Bitfields for printer status:
  6714. Bit(s)    Description    (Table 0489)
  6715.  7    not busy
  6716.  6    acknowledge
  6717.  5    out of paper
  6718.  4    selected
  6719.  3    I/O error
  6720.  2-1    unused
  6721.  0    timeout
  6722. --------B-1701-------------------------------
  6723. INT 17 - PRINTER - INITIALIZE PORT
  6724.     AH = 01h
  6725.     DX = printer number (00h-02h)
  6726. Return: AH = printer status (see #0489)
  6727. Note:    some printers report that they are ready immediately after
  6728.       initialization when they actually are not; a more reliable result may
  6729.       be obtained by calling AH=02h after a brief delay
  6730. SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC"
  6731. --------B-1702-------------------------------
  6732. INT 17 - PRINTER - GET STATUS
  6733.     AH = 02h
  6734.     DX = printer number (00h-02h)
  6735. Return: AH = printer status (see #0489)
  6736. Note:    PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
  6737. SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC"
  6738. --------P-1702--DX0000-----------------------
  6739. INT 17 - INSET - INSTALLATION CHECK
  6740.     AH = 02h
  6741.     DX = 0000h
  6742.     CX = 07C3h (1987d)
  6743. Return: CX = 07C2h (1986d) if installed
  6744. Program: INSET is a text/graphics integration program
  6745. --------b-170200BX5050-----------------------
  6746. INT 17 - Advanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
  6747.     AX = 0200h
  6748.     BX = 5050h ('PP')
  6749.     CH = 45h   ('E')
  6750.     DX = printer port number (00h-02h)
  6751. Return: AH = status
  6752.         00h if installed and port is an enhanced parallel port
  6753.         CX:AL = installed BIOS type
  6754.             5050h:45h ('PPE') if EPP v3.0 BIOS Installed
  6755.             4550h:50h ('EPP') if EPP v1.0 BIOS installed
  6756.         DX:BX -> far entry point to Advanced BIOS (see #0490)
  6757.         03h if installed but specified port not supported
  6758.         CF set
  6759. Program: The Advanced Parallel Port BIOS provides support for parallel
  6760.       port peripherals using the enhanced modes of the IEEE 1284.
  6761. SeeAlso: AH=E0h
  6762.  
  6763. (Table 0490)
  6764. Call EPP BIOS entry point with:
  6765.     DL = port number
  6766.     AH = function
  6767.         00h get ???
  6768.         Return: AH = 00h if successful
  6769.                 BH = ??? (10h)
  6770.                 BL = ??? (00h)
  6771.                 ES:DI -> driver copyright string???
  6772.                 CX = I/O port base address for parallel port
  6773.                 AL = IRQ number used by port
  6774.         01h set port mode???
  6775.         AL = ???
  6776.             bit 0: ???
  6777.             bit 1: ???
  6778.             bit 2: ???
  6779.             bits 3-7 reserved (0)
  6780.         Return: AH = 00h if successful
  6781.             CF clear if successful
  6782.             AL = ??? (destroyed?)
  6783.         02h get port mode???
  6784.         Return: AL = ??? (01h,02h,04h,FFh)
  6785.             AH = 00h
  6786.             CF clear
  6787.         03h interrupt control
  6788.         AL = subfunction
  6789.             00h enable parallel port interrupts
  6790.             01h disable parallel port interrupts
  6791.         Return: AH = status (00h,05h,06h) (see also #0491)
  6792.         04h set ???
  6793.         Return: AH = 00h if successful
  6794.             AL destroyed
  6795.         05h ???
  6796.         Return: AL destroyed
  6797.         06h get ???
  6798.         Return: AL = ??? (read from port 037Bh after setting bit 5 of
  6799.                   port 037Ah)
  6800.         07h get ???
  6801.         Return: AL = ??? (read from port 037Ch after clearing bit 5 of
  6802.                   port 037Ah)
  6803.         08h output block of data
  6804.         ES:SI -> block of data to be sent to parallel port
  6805.         CX = number of bytes to output
  6806.         Return: AH = status (see #0491)
  6807.         Note:    clears bit 5 of port 037Ah, then does OUTSB to 037Ch
  6808.         09h read byte of data
  6809.         Return: AH = status (see #0491)
  6810.             AL = byte read from parallel port
  6811.         Note:    sets bit 5 of port 037Ah, then does IN from 037Ch
  6812.         0Ah read block of data
  6813.         ES:DI -> buffer for received data
  6814.         CX = number of bytes to read from paralle port
  6815.         Return: AH = status (see #0491)
  6816.             ES:DI buffer filled if successful
  6817.         Note:    sets bit 5 of port 037Ah, then does INSB from 037Ch
  6818.         0Bh read ???
  6819.         AL = ???
  6820.         Return: AH = status (see #0491)
  6821.             AL = byte read if successful
  6822.         Note:    clears bit 5 of port 037Ah, does OUT to 037Bh, then
  6823.               sets bit 5 of 037Ah and does IN from 037Ch
  6824.         0Ch send ???
  6825.         AL = ??? (byte to send to port 037Bh)
  6826.         DH = ??? (byte to send to port 037Ch)
  6827.         Return: AH = status (see #0491)
  6828.         Note:    clears bit 5 of port 037Ah, does OUT to 037Bh, then
  6829.               sets bit 5 of 037Ah and does OUT to 037Ch
  6830.         0Dh read block ???
  6831.         AL = ??? (byte to send to port 037Bh)
  6832.         ES:DI -> buffer for received data
  6833.         CX = number of bytes to read
  6834.         Return: AH = status (see #0491)
  6835.         Note:    clears bit 5 of port 037Ah, does OUT to 037Bh, then
  6836.               sets bit 5 of 037Ah and does INSB from 037Ch
  6837.         0Eh write block ???
  6838.         AL = ??? (byte to send to port 037Bh)
  6839.         ES:DI -> data to be sent
  6840.         CX = number of bytes to write
  6841.         Return: AH = status (see #0491)
  6842.         Note:    clears bit 5 of port 037Ah, does OUT to 037Bh, then
  6843.               sets bit 5 of 037Ah and does OUTSB to 037Ch
  6844.         0Fh NOP???
  6845.         Return: AH = status (00h,03h,05h) (see #0491)
  6846.         Notes:    this function does nothing beyond checking whether
  6847.               the desired port is supported and in the proper mode
  6848.             must call function 01h with AL=04h first to get a
  6849.               successful return code
  6850.         10h NOP???
  6851.         Return: AH = status (00h,03h,05h) (see #0491)
  6852.         Notes:    this function does nothing beyond checking whether
  6853.               the desired port is supported and in the proper mode
  6854.             must call function 01h with AL=04h first to get a
  6855.               successful return code
  6856.         11h ???
  6857.         AL = subfunction
  6858.             00h ???
  6859.             01h ???
  6860.             ES:DI -> ???
  6861.         Return: AH = status (00h,03h,05h,06h) (see #0491)
  6862.         12h ???
  6863.         AL = subfunction
  6864.             00h get ???
  6865.             01h increment ???
  6866.             02h decrement ???
  6867.         Return: AH = status (00h,05h,06h,07h) (see #0491)
  6868.             AL = current state of ??? (00h,01h)
  6869.         Note:    unlike all other functions, this one does not use DL
  6870. Return: AH = status (see #0491)
  6871.     CF clear if successful
  6872.     CF set on error
  6873. Notes:    functions 03h-12h all require that function 01h have been called
  6874.       with AL=04h first
  6875.     the above description is derived from Compaq's EPPBIOS.SYS, supplied
  6876.       in SOFTPAQ number 0937
  6877.  
  6878. (Table 0491)
  6879. Values for EPP BIOS function status:
  6880.  00h    successful
  6881.  02h    invalid parameter???
  6882.  03h    unsupported parallel port
  6883.  05h    unsupported in current mode
  6884.  06h    invalid subfunction
  6885.  07h    already ???
  6886.  FFh    invalid/unsupported function
  6887. --------P-1703-------------------------------
  6888. INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
  6889.     AH = 03h
  6890. Return: BX = ???
  6891.     CX = ???
  6892. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  6893.       Vertisoft Systems, Inc.
  6894. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
  6895. --------c-1703-------------------------------
  6896. INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
  6897.     AH = 03h
  6898.     DX = printer port number
  6899.     CX = number of characters to print
  6900.     DS:SI -> string
  6901. Return: AH = printer status (see #0489)
  6902.     CX = number of characters actually printed
  6903. Desc:    send an entire string of chars to the print spooler with a single call
  6904. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  6905.       operating system by The Software Link, Inc.
  6906. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
  6907. ----------1703--BX5A00-----------------------
  6908. INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
  6909.     AH = 03h
  6910.     BX = 5A00h
  6911. Return: AX = 5ACBh
  6912.     DI = 0000h
  6913.     ES = DMP code segment (also data segment)
  6914. Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
  6915.       PCTODAY disk, volume 10, March 1991
  6916. --------N-170300-----------------------------
  6917. INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
  6918.     AX = 0300h
  6919.     CX = type of socket from  socket( domain, type, protocol )
  6920.     DX = local identifier of socket (0 - 31)
  6921. Return: AX = 0000h success
  6922.         CX = segment of 4500 byte transfer buffer
  6923.         DX = offset of 4500 byte transfer buffer
  6924.        = FFFFH failure
  6925.         CX = error code
  6926.         ENFILE        23
  6927. Program: DOSISODE is the ISO developers environment which has been ported to
  6928.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  6929.       Currently it allows a maximum of 6 open sockets.
  6930. Note:    this function will initialize the interface the first time it is
  6931.       called
  6932. SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
  6933. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  6934. --------P-1704-------------------------------
  6935. INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
  6936.     AH = 04h
  6937. Note:    has no effect unless ELTSR is deactivated (see AX=0503h)
  6938. SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
  6939. --------N-170400-----------------------------
  6940. INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
  6941.     AX = 0400h
  6942. Note:    this function just returns
  6943. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
  6944. --------P-170500-----------------------------
  6945. INT 17 U - Emulaser ELTSR - ???
  6946.     AX = 0500h
  6947.     ???
  6948. Return: AX = unload status (0001h safe to unload, 0002h not safe)
  6949.     BX = ???
  6950.     CX = PSP segment of ELTSR
  6951.     DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
  6952.     SI = ???
  6953.     DI = ???
  6954. SeeAlso: AH=04h,INT 1A/AH=E5h
  6955. --------N-170500-----------------------------
  6956. INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
  6957.     AX = 0500h
  6958. SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  6959. --------P-170501-----------------------------
  6960. INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
  6961.     AX = 0501h
  6962. Return: (see AX=0500h)
  6963. Note:    restores interrupt vectors without checking whether they have been
  6964.       hooked by later programs; should only be called if ELTSR reports
  6965.       that it is safe to unload
  6966. SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
  6967. Index:    uninstall;Emulaser ELTSR
  6968. --------P-170502-----------------------------
  6969. INT 17 U - Emulaser ELTSR - SET ???
  6970.     AX = 0502h
  6971.     BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
  6972.     CL = ???
  6973.     DL = ???
  6974. Return: (see AX=0500h)
  6975. SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
  6976. --------P-170503-----------------------------
  6977. INT 17 U - Emulaser ELTSR - DEACTIVATE???
  6978.     AX = 0503h
  6979. Return: (see AX=0500h)
  6980. SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
  6981. --------P-1706-------------------------------
  6982. INT 17 U - Emulaser ELTSR - ???
  6983.     AH = 06h
  6984.     ???
  6985. Return: ???
  6986. SeeAlso: AH=05h,INT 1A/AH=E5h
  6987. --------N-170600-----------------------------
  6988. INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
  6989.     AX = 0600h
  6990. Note:    this function just returns
  6991. SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  6992. SeeAlso: AX=0E00h"DOSISODE"
  6993. --------P-1707-------------------------------
  6994. INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
  6995.     AH = 07h
  6996.     ES:DX -> ASCIZ filename to be opened
  6997. Return: ???
  6998. Note:    new output will be appended to the specified file
  6999. SeeAlso: AH=08h,INT 1A/AH=E5h
  7000. --------N-170700-----------------------------
  7001. INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
  7002.     AX = 0700h
  7003. Note:    this function just returns
  7004. SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
  7005. --------P-1708-------------------------------
  7006. INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
  7007.     AH = 08h
  7008.     ???
  7009. Return: ???
  7010. Desc:    close the file previously opened by function 07h
  7011. SeeAlso: AH=07h,INT 1A/AH=E5h
  7012. --------N-170800-----------------------------
  7013. INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
  7014.     AX = 0800h
  7015. SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
  7016. --------P-1709-------------------------------
  7017. INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
  7018.     AH = 09h
  7019.     BX = ???
  7020.     CX = ???
  7021.     DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  7022. Return: AX = status
  7023.         00h successful
  7024.         FFh failed
  7025. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  7026.       Vertisoft Systems, Inc.
  7027. Note:    this function calls through to INT 1A/AX=E401h, and thus requires
  7028.       that either ELSPL or Disk Spool II be installed
  7029. SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
  7030. --------N-170900-----------------------------
  7031. INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
  7032.     AX = 0900h
  7033. SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
  7034. --------P-170A-------------------------------
  7035. INT 17 U - Emulaser ELTSR - SET ??? FILENAME
  7036.     AH = 0Ah
  7037.     ES:BX -> ??? buffer
  7038.     CX = length of ??? buffer
  7039. Return: ???
  7040. Note:    copies the specified name into the buffer passed to ELSPL as the
  7041.       filename by AH=09h
  7042. SeeAlso: AH=09h,INT 1A/AH=E5h
  7043. --------N-170A00-----------------------------
  7044. INT 17 - DOSISODE to WATTCP TSR Interface - "select"
  7045.     AX = 0A00h
  7046. SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
  7047. --------P-170B-------------------------------
  7048. INT 17 U - Emulaser ELTSR - GET ???
  7049.     AH = 0Bh
  7050. Return: AX:BX -> ???
  7051. SeeAlso: AH=0Ah,INT 1A/AH=E5h
  7052. --------N-170B00-----------------------------
  7053. INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
  7054.     AX = 0B00h
  7055.     DX = local identifier of socket (0 - 31)
  7056. Note:    this function sets the socket into non_block mode
  7057. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  7058. --------P-170C-------------------------------
  7059. INT 17 U - Emulaser ELTSR - SET ??? FLAG
  7060.     AH = 0Ch
  7061.     ???
  7062. Return: ???
  7063. SeeAlso: AH=0Bh,INT 1A/AH=E5h
  7064. --------N-170C00-----------------------------
  7065. INT 17 - DOSISODE to WATTCP TSR Interface - "close"
  7066.     AX = 0C00h
  7067. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
  7068. --------P-170D-------------------------------
  7069. INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
  7070.     AH = 0Dh
  7071. Return: AX = state (0000h off, 0010h on)
  7072. Desc:    determine the actual state of ScrlLk even when Emulaser is controlling
  7073.       the ScrlLk light as its activity indicator
  7074. SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
  7075. --------N-170D00-----------------------------
  7076. INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
  7077.     AX = 0D00h
  7078. Note:    this function is used to shutdown the interface
  7079. SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  7080. --------P-170E-------------------------------
  7081. INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
  7082.     AH = 0Eh
  7083. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  7084.       Vertisoft Systems, Inc.
  7085. Note:    this function is called by ELTSR on every INT 08 to allow data to be
  7086.       processed in the background, but may also be called by applications
  7087.       to give Emulaser additional CPU time
  7088. SeeAlso: AH=0Dh,INT 1A/AH=E5h
  7089. --------N-170E00-----------------------------
  7090. INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
  7091.     AX = 0E00h
  7092. Return: CX = 1234h if installed
  7093. Program: DOSISODE is the ISO developers environment which has been ported to
  7094.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  7095.       Currently it allows a maximum of 6 open sockets.
  7096. Note:    this function is used to check if the interface is loaded
  7097. SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
  7098. --------P-172000-----------------------------
  7099. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
  7100.     AX = 2000h
  7101.     BL = printer number???
  7102. Return:    AX = status (see #0492)
  7103.     BX = driver version number (BH=major,BL=minor)
  7104.     CH = ??? (00h)
  7105.     CL = ???
  7106.     DX = ??? (0100h)
  7107. Note:    also enables the remaining printer driver functions (2001h-2007h)
  7108. SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
  7109.  
  7110. (Table 0492)
  7111. Values for PC Paint function status:
  7112.  0000h    successful
  7113.  0001h    invalid printer???
  7114.  0002h    ???
  7115.  0003h    invalid subfunction
  7116.  0005h    driver disabled, must call function 00h first
  7117.  0009h    unknown printer error
  7118.  000Bh    printer not selected
  7119.  000Ch    printer out of paper
  7120.  000Eh    error while writing to serial printer
  7121.  000Fh    ???
  7122.  0010h    invalid function number
  7123.  0011h    value out of range
  7124. --------P-172001-----------------------------
  7125. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
  7126.     AX = 2001h
  7127.     BL = printer number???
  7128. Return: AX = status (see #0492)
  7129. --------P-172002-----------------------------
  7130. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
  7131.     AX = 2002h
  7132.     BL = printer number???
  7133.     CL = desired information
  7134.         00h printer type
  7135.         Return: ES:DI -> ASCIZ printer name
  7136.         01h paper size
  7137.         DX = size index
  7138.         Return: ES:DI -> ASCIZ paper size description
  7139.         02h ???
  7140.         Return: BX = ???
  7141.         03h printer information???
  7142.         DX = ???
  7143.         ES:BX -> buffer for ??? (min 134 bytes)
  7144. Return: AX = status (see #0492)
  7145. SeeAlso: AX=2000h,AX=2004h
  7146. --------P-172003-----------------------------
  7147. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
  7148.     AX = 2003h
  7149.     ES:BX -> ???
  7150. Return: AX = status (see #0492)
  7151. SeeAlso: AX=2000h,AX=2004h
  7152. --------P-172004-----------------------------
  7153. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
  7154.     AX = 2004h
  7155.     BL = printer number???
  7156. Return: AX = status (see #0492)
  7157.     ES:DI -> ???
  7158. SeeAlso: AX=2000h,AX=2003h
  7159. --------P-172005-----------------------------
  7160. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
  7161.     AX = 2005h
  7162.     BL = printer number???
  7163. Return: AX = status (see #0492)
  7164. Note:    this function also clears the flag set by AX=2001h
  7165. SeeAlso: AX=2000h,AX=2001h,AX=2006h
  7166. --------P-172006-----------------------------
  7167. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
  7168.     AX = 2006h
  7169.     BL = printer number???
  7170. Return: AX = status (see #0492)
  7171. Note:    this function also clears the flag set by AX=2001h and disables
  7172.       functions other than AX=2000h
  7173. SeeAlso: AX=2000h,AX=2001h,AX=2005h
  7174. --------P-172007-----------------------------
  7175. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
  7176.     AX = 2007h
  7177. Return: AX unchanged
  7178. SeeAlso: AX=2000h
  7179. --------N-172400-----------------------------
  7180. INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
  7181.     AX = 2400h
  7182.     DL = new state
  7183.         00h disabled
  7184.         01h enabled
  7185. Return: DL = 24h if installed
  7186.     DH = minor version number
  7187.     CX = network address of this machine
  7188.     AL = status (see #0493)
  7189. SeeAlso: AX=2403h,INT 16/AX=4500h
  7190.  
  7191. (Table 0493)
  7192. Values for NET.24 function status:
  7193.  00h    successful
  7194.  01h    timeout
  7195.  02h    header error
  7196.  03h    data error
  7197.  04h    busy
  7198.  05h    invalid parameters
  7199. --------N-172401-----------------------------
  7200. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
  7201.     AX = 2401h
  7202.     BL = timeout in clock ticks
  7203. Return: AL = status (see #0493)
  7204.     DX:BX -> receive buffer
  7205. SeeAlso: AX=2402h,AX=2404h,AX=2408h
  7206. --------N-172402-----------------------------
  7207. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
  7208.     AX = 2402h
  7209.     transmit buffer filled (see AX=2403h)
  7210. Return: AL = status (see #0493)
  7211. SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
  7212. --------N-172403-----------------------------
  7213. INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
  7214.     AX = 2403h
  7215. Return: AL = status (see #0493)
  7216.     CX = number of characters in receive ring buffer
  7217.     DX:BX -> transmit buffer
  7218. SeeAlso: AX=2400h,AX=2402h
  7219. --------N-172404-----------------------------
  7220. INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
  7221.     AX = 2404h
  7222.     BX = target address
  7223. Return: AL = status (see #0493)
  7224. SeeAlso: AX=2402h,AX=2405h
  7225. --------N-172405-----------------------------
  7226. INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
  7227.     AX = 2405h
  7228.     BX = target address
  7229. Return: AL = status (see #0493)
  7230. SeeAlso: AX=2402h,AX=2404h
  7231. --------N-172406-----------------------------
  7232. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
  7233.     AX = 2406h
  7234. Return: AL = status (see #0493)
  7235. SeeAlso: AX=2407h,AX=240Ah
  7236. --------N-172407-----------------------------
  7237. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
  7238.     AX = 2407h
  7239. Return: AL = status (see also #0493)
  7240.         06h end of data
  7241.     DL = received character
  7242. SeeAlso: AX=2406h
  7243. --------N-172408-----------------------------
  7244. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
  7245.     AX = 2408h
  7246. Return: AL = status (see also #0493)
  7247.         06h end of data
  7248.     CX = number of bytes in receive buffer
  7249.     DX:SI -> receive buffer
  7250. SeeAlso: AX=2401h,AX=2405h,AX=2409h
  7251. --------N-172409-----------------------------
  7252. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
  7253.     AX = 2409h
  7254.     BX = target address
  7255.     CX = number of data bytes
  7256.     DL = command code to send
  7257.     DS:SI -> data bytes for command
  7258. Return: AL = status (see also #0493)
  7259.         03h no response
  7260.         06h remote currently unable to perform command
  7261. SeeAlso: AX=2405h,AX=2408h
  7262. --------N-17240A-----------------------------
  7263. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
  7264.     AX = 240Ah
  7265. Return: AL = status (see #0493)
  7266. SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
  7267. --------N-17240B-----------------------------
  7268. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
  7269.     AX = 240Bh
  7270.     DL = character to send
  7271. Return: AL = status (see also AX=2400h)
  7272.         03h transmission error
  7273.         06h write error
  7274. SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
  7275. --------N-17240C-----------------------------
  7276. INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
  7277.     AX = 240Ch
  7278. Return: AL = status (see also AX=2400h)
  7279.         03h transmission error
  7280.         06h remote breaks connection
  7281. SeeAlso: AX=240Ah,AX=240Bh
  7282. --------J-175000-----------------------------
  7283. INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
  7284.     AX = 5000h
  7285.     BX = country code
  7286.         0001h USA (English), 0051h Japan
  7287. Return: AL = status
  7288.         00h successful
  7289.         01h bad country code
  7290.         02h other error
  7291. SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
  7292. --------J-175001-----------------------------
  7293. INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
  7294.     AX = 5001h
  7295. Return: AL = status
  7296.         00h successful
  7297.         BX = country code
  7298.         02h error
  7299. SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
  7300. --------J-1751-------------------------------
  7301. INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
  7302.     AH = 51h
  7303.     DX = 2-byte JIS code
  7304. Return: DX = shift-JIS value or 0000h on error
  7305. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  7306.       characters to Shift-JIS characters, and the other performs the
  7307.       opposite conversion
  7308. SeeAlso: AX=5000h,AH=52h
  7309. --------J-1752-------------------------------
  7310. INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
  7311.     AH = 52h
  7312.     DX = 2-byte shift-JIS code
  7313. Return: DX = JIS code or 0000h on error
  7314. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  7315.       characters to Shift-JIS characters, and the other performs the
  7316.       opposite conversion
  7317. SeeAlso: AH=51h
  7318. --------V-1760-------------------------------
  7319. INT 17 - FLASHUP.COM - INSTALLATION CHECK
  7320.     AH = 60h
  7321. Return: AL = 60h
  7322.     DX = CS of resident code
  7323. Notes:    FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
  7324.     FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  7325.       consisting of an 80h followed by the actual command
  7326. SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
  7327. --------V-1761-------------------------------
  7328. INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
  7329.     AH = 61h
  7330. Return: AL = 61h
  7331.     DX = CS of resident code
  7332. Note:    SPEEDSCR.COM is by The Software Bottling Co.
  7333. --------P-1762-------------------------------
  7334. INT 17 U - T2PS v1.0 - UNINSTALL
  7335.     AH = 62h
  7336. Return: nothing
  7337. SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
  7338. --------P-1763-------------------------------
  7339. INT 17 U - T2PS v1.0 - SET PARAMETERS
  7340.     AH = 63h
  7341.     ES:SI -> settings (see #0494)
  7342. Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
  7343.       Technologies
  7344. SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
  7345.  
  7346. Format of T2PS settings:
  7347. Offset    Size    Description    (Table 0494)
  7348.  00h    WORD    LPT port number (0=LPT1, etc.)
  7349.  02h    WORD    page heigh in points
  7350.  04h    WORD    page width in points
  7351.  06h    WORD    top margin in points
  7352.  08h    WORD    bottom margin in points
  7353.  0Ah    WORD    left margin in points
  7354.  0Ch    WORD    right margin in points
  7355.  0Eh    WORD    font size in points
  7356.  10h    WORD    tab size
  7357.  12h    WORD    timeout in clock ticks
  7358. --------P-1764-------------------------------
  7359. INT 17 U - T2PS v1.0 - GET PARAMETERS
  7360.     AH = 64h
  7361.     ES:SI -> buffer for settings (see #0494)
  7362. Return: ES:SI buffer filled
  7363. SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
  7364. --------b-176F00BX0000-----------------------
  7365. INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
  7366.     AX = 6F00h
  7367.     BX = 0000h
  7368. Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
  7369. SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
  7370. SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
  7371. --------b-176F02-----------------------------
  7372. INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
  7373.     AX = 6F02h
  7374.     CX = size of buffer in bytes
  7375.     DX = port number (0-3)
  7376.     ES:DI -> buffer containing characters to be printed
  7377. Return: AH = printer status (see #0489)
  7378.     CX = number of bytes successfully printed
  7379.     ---on error (AH bit 0 set)---
  7380.         ES:DI -> next byte to be sent
  7381.     ---if successful---
  7382.         ES:DI unchanged
  7383. SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
  7384. --------N-1781-------------------------------
  7385. INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
  7386.     AH = 81h
  7387.     AL = 00h (NTNX compatibility mode)
  7388.     CL = number of jobs to cancel
  7389. Return: AL = status (see #0495)
  7390. Note:    this function cancels the last CL printouts for the current task
  7391. SeeAlso: AH=82h
  7392.  
  7393. (Table 0495)
  7394. Values for Alloy status:
  7395.  00h    success
  7396.  01h-7Fh warning
  7397.  80h    general failure
  7398.  81h    host overloaded (NTNX only)
  7399.  82h    module busy (NTNX only)
  7400.  83h    host busy (NTNX only)
  7401.  84h    re-entry flag set
  7402.  85h    invalid request
  7403.  86h    invalid printer
  7404.  87h    invalid process ID
  7405.  89h    access denied
  7406.  8Ah    option not available for given port type
  7407.  8Bh    option not available for given task type
  7408.  91h    printer busy
  7409.  C2h    file not found
  7410.  C3h    path not found
  7411.  C4h    file access failure
  7412. --------N-1782-------------------------------
  7413. INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
  7414.     AH = 82h
  7415.     AL = 00h (NTNX compatibility mode)
  7416. Return: AL = status (see #0495)
  7417. SeeAlso: AH=81h
  7418. --------N-1783-------------------------------
  7419. INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
  7420.     AH = 83h
  7421.     AL = mode
  7422.         00h NTNX compatibility
  7423.         CL = number of copies (max 99, default 1)
  7424.         02h MW386 v2+
  7425.         BX = logical device number
  7426.             00h-03h = LPT1-LPT4
  7427.             04h-07h = COM1-COM4
  7428.         CX = number of copies
  7429. Return: AL = status (see #0495)
  7430. Note:    in NTNX compatibility mode, this function only affects LPT1
  7431. --------N-1784-------------------------------
  7432. INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
  7433.     AH = 84h
  7434.     AL = mode
  7435.         00h NTNX compatibility
  7436.         02h MW386 v2+
  7437.         BX = logical device number
  7438.             00h-03h = LPT1-LPT4
  7439.             04h-07h = COM1-COM4
  7440. Note:    closes spool file and tells spooler to queue the print job (LPT1 only
  7441.       under MW386 in NTNX compatibility mode)
  7442. --------J-1784-------------------------------
  7443. INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
  7444.     AH = 84h
  7445.     AL = character
  7446.     DX = printer number
  7447. Return: AH = printer status (see #0489)
  7448. SeeAlso: AH=00h,AH=85h
  7449. --------J-1785-------------------------------
  7450. INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
  7451.     AH = 85h
  7452.     AL = new state (00h enabled, 01h disabled)
  7453. SeeAlso: AH=84h"AX"
  7454. --------N-1787-------------------------------
  7455. INT 17 - Alloy NTNX - SET INDOS POINTER
  7456.     AH = 87h
  7457.     AL = 00h
  7458.     CX:BX -> buffer for user-written printer drivers
  7459. Return: BX,CX destroyed
  7460. Note:    must be executed before the printer is enabled
  7461. SeeAlso: AH=8Ah
  7462. --------N-1788-------------------------------
  7463. INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
  7464.     AH = 88h
  7465.     AL = mode
  7466.         00h NTNX compatibility
  7467.         DX = NTNX printer number (see #0496)
  7468.         01h MW386
  7469.         DX = MW386 printer number
  7470. Return: AH = status (see #0495)
  7471. Note:    removes specified printer from the spooler's list of printers
  7472. SeeAlso: AH=89h,AH=8Bh
  7473.  
  7474. (Table 0496)
  7475. Values for Alloy NTNX printer number:
  7476.  00h    host LPT1
  7477.  01h    host LPT2
  7478.  02h    host LPT3
  7479.  03h    host LPT4
  7480.  04h    host COM1
  7481.  05h    host COM2
  7482.  06h    user's logical COM2
  7483.  07h    user's terminal AUX port
  7484.  08h    user's logical COM1 (MW386 only)
  7485. --------N-1789-------------------------------
  7486. INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
  7487.     AH = 89h
  7488.     AL = mode
  7489.         00h NTNX compatibility
  7490.         DX = NTNX printer number (see #0496)
  7491.         01h MW386
  7492.         DX = MW386 printer number
  7493. Return: AL = status (see #0495)
  7494. Note:    the specified printer is added to the spooler's list of available
  7495.       printers
  7496. SeeAlso: AH=88h,AH=8Bh
  7497. --------N-178A-------------------------------
  7498. INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
  7499.     AH = 8Ah
  7500.     ???
  7501. SeeAlso: AH=92h
  7502. --------N-178B-------------------------------
  7503. INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
  7504.     AH = 8Bh
  7505.     DS:DX -> ASCIZ printer name
  7506. Return: AL = status (see also AH=81h)
  7507.         00h successful
  7508.         DX = physical device number
  7509. SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
  7510. --------N-178C-------------------------------
  7511. INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
  7512.     AH = 8Ch
  7513.     DX = physical device number
  7514.     ES:DI -> 17-byte buffer for ASCIZ device name
  7515. Return: AL = status (see also AH=81h)
  7516.         00h successful
  7517.         ES:DI buffer filled
  7518. SeeAlso: AH=88h,AH=8Bh
  7519. --------N-178D-------------------------------
  7520. INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
  7521.     AH = 8Dh
  7522.     AL = 00h
  7523. Return: AL = status (see #0495)
  7524. Notes:    clears all buffers and resets spooler to boot-up values
  7525.     MW386 supports this function for compatibility only; it is a NOP
  7526. --------N-178E-------------------------------
  7527. INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
  7528.     AH = 8Eh
  7529.     AL = 00h
  7530. Return: CX:BX -> INT 28 entry point
  7531. SeeAlso: AH=8Fh
  7532. --------N-178F-------------------------------
  7533. INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
  7534.     AH = 8Fh
  7535.     AL = 00h
  7536. Return: CX:BX -> DOS intercept routine
  7537. SeeAlso: AH=8Eh
  7538. --------N-1790-------------------------------
  7539. INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
  7540.     AH = 90h
  7541.     AL = mode
  7542.         00h NTNX compatibility
  7543.         DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
  7544.         DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
  7545.         02h MW386 v2+
  7546.         BX = logical device number
  7547.             00h-03h = LPT1-LPT4
  7548.             04h-07h = COM1-COM4
  7549.     CX:SI -> ASCIZ pathname
  7550. Return: AL = status (see #0495)
  7551. Note:    in mode 00h, the file is always sent to logical LPT1
  7552. SeeAlso: AH=A0h
  7553. --------N-1791-------------------------------
  7554. INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
  7555.     AH = 91h
  7556.     AL = mode
  7557.         00h NTNX compatibility
  7558.         Return: CX = user number (00h = host)
  7559.             DX = currently selected printer number (00h-08h)
  7560.         01h MW386
  7561.         Return: CX = user number
  7562.             DX = physical dev number of currently selected printer
  7563.         02h MW386 v2+
  7564.         BX = logical device number
  7565.             00h-03h = LPT1-LPT4
  7566.             04h-07h = COM1-COM4
  7567.         Return: CX = user number
  7568.             DX = physical device number
  7569. Return: AL = status (see #0495)
  7570. SeeAlso: AH=8Ch
  7571. --------N-1792-------------------------------
  7572. INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
  7573.     AH = 92h
  7574.     AL = 00h
  7575.     CL = 00h
  7576. Return: CL = driver state
  7577.         01h initialized
  7578.         80h not initialized
  7579.     AX = status (see #0495)
  7580. SeeAlso: AH=8Ah
  7581. --------N-1794-------------------------------
  7582. INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
  7583.     AH = 94h
  7584.     AL = mode
  7585.         00h NTNX compatibility
  7586.         DX = NTNX printer number (see #0496)
  7587.         01h MW386
  7588.         DX = MW386 printer number
  7589.         02h MW386 v2+
  7590.         BX = logical printer number
  7591.         DX = MW386 printer number
  7592. Return: AL = status (see #0495)
  7593. Note:    modes 00h and 01h affect only logical LPT1
  7594. SeeAlso: AH=8Bh,AH=95h
  7595. --------N-1795-------------------------------
  7596. INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
  7597.     AH = 95h
  7598.     AL = mode
  7599.         00h NTNX compatibility
  7600.         Return: DX = NTNX printer number (see #0496)
  7601.                 (FFFFh if current printer not compatible with NTNX)
  7602.         01h MW386
  7603.         Return: DX = MW386 printer number
  7604.         02h MW386 v2+
  7605.         BX = logical device number
  7606.             00h-03h = LPT1-LPT4
  7607.             04h-07h = COM1-COM4
  7608.         Return: DX = MW386 printer number (FFFFh = none)
  7609. Return: AL = status (see #0495)
  7610. Note:    modes 00h and 01h return the printer number of logical LPT1 only
  7611. SeeAlso: AH=94h
  7612. --------N-1796-------------------------------
  7613. INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
  7614.     AH = 96h
  7615.     AL = 00h
  7616. Note:    documentation states that this is a NOP, doing only XOR AX,AX before
  7617.       returning
  7618. SeeAlso: INT 14/AH=24h
  7619. --------N-1797-------------------------------
  7620. INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
  7621.     AH = 97h
  7622.     AL = mode
  7623.         00h NTNX compatibility
  7624.         02h MW386 v2+
  7625.         BX = logical device number
  7626.             00h-03h = LPT1-LPT4
  7627.             04h-07h = COM1-COM4
  7628.     CH,CL,DH = three character break sequence
  7629.     DL = subfunction
  7630.         00h set break string
  7631.         else reset break
  7632. Return: AL = status (see #0495)
  7633. Notes:    mode 00h affects only logical LPT1
  7634.     when the break string is encountered, the spool file will be closed and
  7635.       queued for printing automatically
  7636.     the break string is not permanently saved, and will be reset each time
  7637.       MW386 or the user is rebooted
  7638. SeeAlso: AH=9Bh
  7639. --------N-1798-------------------------------
  7640. INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
  7641.     AH = 98h
  7642.     AL = 00h
  7643.     DL = printer number (FFh=current)
  7644. Return: AL = status
  7645.         00h successful
  7646.         01h incorrect printer
  7647.         02h task not found
  7648. Note:    MW386 supports this function for compatibility only; it is a NOP
  7649. --------N-1799-------------------------------
  7650. INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
  7651.     AH = 99h
  7652.     AL = mode
  7653.         00h NTNX compatibility
  7654.         DL = NTNX printer number (see #0496)
  7655.             (FFh = task's current logical LPT1)
  7656.         DH = mode (see #0497)
  7657.         01h MW386
  7658.         DX = MW386 printer number
  7659.         CL = mode (as for DH above)
  7660. Return: AL = status (see #0495)
  7661.     DH = mode (bits 1 and 2 set as above)
  7662.     DL = printer owner's user number if not spooled
  7663.  
  7664. Bitfields for Alloy printer mode:
  7665.  0    get mode if 1, set mode if 0    (Table 0497)
  7666.  1    private ("attached")
  7667.  2    direct instead of spooled
  7668.  3-7    reserved (0)
  7669. --------N-179A-------------------------------
  7670. INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
  7671.     AH = 9Ah
  7672.     AL = mode
  7673.         00h NTNX compatibility
  7674.         DX = NTNX printer number (see #0496)
  7675.             (FFFFh = current logical LPT1)
  7676.         01h MW386
  7677.         DX = MW386 printer number
  7678.     CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
  7679. Return: AL = status (see #0495)
  7680. Note:    beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  7681.       rather than a per-user basis; NTNX and MW386 v1.x ignore DX
  7682. SeeAlso: AH=A4h
  7683. --------N-179B-------------------------------
  7684. INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
  7685.     AH = 9Bh
  7686.     AL = mode
  7687.         00h NTNX compatibility
  7688.         CX = timeout value in clock ticks (1/18 sec) (00h = never)
  7689.         01h MW386
  7690.         CX = timeout value in seconds (00h = never)
  7691.         02h MW386 v2+
  7692.         BX = logical device number
  7693.             00h-03h = LPT1-LPT4
  7694.             04h-07h = COM1-COM4
  7695.         CX = timeout value in seconds (00h = never)
  7696. Return: AL = status (see #0495)
  7697. Notes:    modes 00h and 01h affect only the current logical LPT1
  7698.     if no data is sent to a printer for the specified amount of time, the
  7699.       spool file will be closed and queued for printing automatically
  7700. SeeAlso: AH=97h
  7701. --------N-17A0-------------------------------
  7702. INT 17 - Alloy MW386 - SPOOL COPY OF FILE
  7703.     AH = A0h
  7704.     AL = mode
  7705.         00h NTNX compatibility
  7706.         DX = ??? (NTNX, MW386 v1.x only)
  7707.         02h MW386 v2+
  7708.         BX = logical device number
  7709.             00h-03h = LPT1-LPT4
  7710.             04h-07h = COM1-COM4
  7711.     CX:SI -> ASCIZ pathname
  7712. Return: AL = status (see #0495)
  7713. Notes:    makes a copy of the specified file in the spooler's directory, allowing
  7714.       the original file to be modified or deleted while the copy is printed
  7715.     in mode 00h, the file is printed on logical LPT1
  7716. SeeAlso: AH=90h
  7717. --------N-17A4-------------------------------
  7718. INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
  7719.     AH = A4h
  7720.     AL = new state
  7721.         00h form feed after end of print job disabled
  7722.         01h form feed enabled
  7723. Return: AL = status (see #0495)
  7724. Note:    only affects the current logical LPT1
  7725. SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
  7726. --------N-17A6-------------------------------
  7727. INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
  7728.     AH = A6h
  7729.     AL = new state
  7730.         00h banner page before print job disabled
  7731.         01h banner page enabled
  7732. Return: AL = status (see #0495)
  7733. Note:    only affects the current logical LPT1
  7734. SeeAlso: AH=A4h
  7735. --------N-17A7-------------------------------
  7736. INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
  7737.     AH = A7h
  7738.     AL = spool flags (see #0498)
  7739.     BX = logical device number
  7740.         00h-03h = LPT1-LPT4
  7741.         04h-07h = COM1-COM4
  7742. Return: AL = status (see #0495)
  7743. Note:    the documentation does not state which register contains the result of
  7744.       a GET
  7745. SeeAlso: AH=A4h,AH=A6h
  7746.  
  7747. Bitfields for Alloy spool flags:
  7748. Bit(s)    Description    (Table 0498)
  7749.  0    banner page enabled (see AH=A6h)
  7750.  1    form feed enabled (see AH=A4h)
  7751.  2-6    reserved (0)
  7752.  7    set flags if 1, get flags if 0
  7753. --------N-17A8-------------------------------
  7754. INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
  7755.     AH = A8h
  7756.     CX:SI -> ASCIZ filename without extension (max 8 chars)
  7757. Return: AL = status (see #0495)
  7758. Note:    allows application to specify banner page filename for spool files
  7759.       collected from the application's printer output
  7760. SeeAlso: AH=A9h
  7761. --------N-17A9-------------------------------
  7762. INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
  7763.     AH = A9h
  7764.     AL = new spool drive (2=C:,3=D:,etc)
  7765. Return: AL = status (see #0495)
  7766. Note:    does not remove previous spooling directory since jobs may be pending
  7767. SeeAlso: AH=A8h
  7768. --------N-17AA-------------------------------
  7769. INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
  7770.     AH = AAh
  7771.     AL = mode
  7772.         00h NTNX
  7773.         DX = NTNX printer number (see #0496)
  7774.         01h MW386
  7775.         DX = MW386 printer number
  7776. Return: AH = instantaneous printer status
  7777.         00h printer ready
  7778.         01h not ready
  7779.         12h off line
  7780.         13h out of paper
  7781.         14h general device failure
  7782.         15h device timeout
  7783.         16h bad device number
  7784. --------N-17AF-------------------------------
  7785. INT 17 - Alloy MW386 - CHECK SPOOLER
  7786.     AH = AFh
  7787. Return: AX = 55AAh if spooler available
  7788. --------c-17C0-------------------------------
  7789. INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
  7790.     AH = C0h
  7791.     DX = printer port (0-3)
  7792. Return: ES:BX -> control block (see #0499)
  7793. SeeAlso: AH=C1h
  7794.  
  7795. Format of PCSpool control block:
  7796. Offset    Size    Description    (Table 0499)
  7797.  00h    WORD    printer number
  7798.  02h    WORD    address of printer status port
  7799.  04h    WORD    number of first record in queue
  7800.  06h    WORD    number of last record in queue
  7801.  08h    DWORD    characters already printed
  7802.  0Ch    DWORD    number of characters remaining
  7803.  10h    DWORD    pointer to dequeue buffer
  7804.  14h    DWORD    previous count of characters printed
  7805.  18h    DWORD    number of clock ticks taken to print them
  7806.  1Ch    WORD    offset of next character to output
  7807.  1Eh    WORD    offset of next character to print
  7808.  20h    WORD    pointer to spooling queue record
  7809.  22h    BYTE    current spooling status
  7810.  23h    BYTE    current printer status:
  7811.         00h OK
  7812.         01h not ready
  7813.         02h paused with message
  7814.         03h paused
  7815.         04h initializing
  7816.         FEh non-existent port
  7817.         FFh not spooled
  7818.  24h    BYTE    current control record type
  7819.  25h    WORD    observed printer speed
  7820.  27h    WORD    characters to print per service
  7821.  29h    BYTE    01h if disk write needed
  7822.  2Ah    BYTE    01h if queued data should be flushed
  7823.  2Bh    BYTE    01h to update cps status
  7824. --------c-17C1--------------------------------
  7825. INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
  7826.     AH = C1h
  7827.     DX = printer port (0-3)
  7828.     DS:SI -> ASCIZ string to save for display
  7829. Note:    flushes pending writes
  7830. SeeAlso: AH=C0h,AH=C2h
  7831. --------c-17C2-------------------------------
  7832. INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
  7833.     AH = C2h
  7834.     DX = printer port (0-3)
  7835. SeeAlso: AH=C3h
  7836. --------c-17C3-------------------------------
  7837. INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
  7838.     AH = C3h
  7839.     DX = printer port (0-3)
  7840. SeeAlso: AH=C2h,AH=C7h
  7841. --------c-17C4-------------------------------
  7842. INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
  7843.     AH = C4h
  7844. Return: DI = B0BFh
  7845.     SI = segment
  7846. --------c-17C5-------------------------------
  7847. INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
  7848.     AH = C5h
  7849.     DX = printer port (0-3)
  7850. Note:    cancels up to the pause record
  7851. --------c-17C6-------------------------------
  7852. INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
  7853.     AH = C6h
  7854.     DX = printer port (0-3)
  7855. Return: AX = queue status
  7856.        0000h printer not active or at pause
  7857.        0001h printer busy
  7858. --------c-17C7-------------------------------
  7859. INT 17 - PC Magazine PCSpool - CLOSE QUEUE
  7860.     AH = C7h
  7861.     DX = printer port (0-3)
  7862. SeeAlso: AH=C3h
  7863. --------P-17CD00-----------------------------
  7864. INT 17 - INSET - EXECUTE COMMAND STRING
  7865.     AX = CD00h
  7866.     DS:DX -> ASCIZ command string (max 80 bytes)
  7867. Return: CX = 07C2h (1986d)
  7868. Note:    user interface menus pop up after last command, unless that command
  7869.     exits INSET
  7870. --------P-17CD01-----------------------------
  7871. INT 17 - INSET - GET IMAGE SIZE
  7872.     AX = CD01h
  7873.     DS:DX -> ASCIZ name of image file
  7874. Return: AX = height in 1/720th inch
  7875.     BX = width in 1/720th inch
  7876.     CX = 07C2h (1986d)
  7877. --------P-17CD02-----------------------------
  7878. INT 17 - INSET - INITIALIZE
  7879.     AX = CD02h
  7880. Return: CX = 07C2h (1986d)
  7881. Note:    all open files are closed and the printer is reset
  7882. SeeAlso: AX=CD04h
  7883. --------P-17CD03-----------------------------
  7884. INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
  7885.     AX = CD03h
  7886. Return: CX = 07C2h (1986d)
  7887. --------P-17CD04-----------------------------
  7888. INT 17 - INSET - INITIALIZE LINKED MODE
  7889.     AX = CD04h
  7890.     ES:SI -> FAR routine for linked mode (see #0500)
  7891. Return: CX = 07C2h
  7892. SeeAlso: AX=CD02h,AX=CD08h
  7893.  
  7894. (Table 0500)
  7895. Values INSET linked-mode routine is called with:
  7896.     AL = function
  7897.         00h send character to printer
  7898.         BL = character to send
  7899.         01h send string to printer
  7900.         CX = number of bytes to send
  7901.         DS:DX -> buffer containing data
  7902.         02h move print head to horizontal starting position of image
  7903. Return:    AX = status
  7904.         0000h success
  7905.         0001h failure
  7906. --------P-17CD05-----------------------------
  7907. INT 17 - INSET - START MERGING IMAGE INTO TEXT
  7908.     AX = CD05h
  7909.     DS:DX -> ASCIZ name of PIX file
  7910.     CX = left margin of text in 1/720th inch
  7911. Return: AH = printer type
  7912.         00h page-oriented (multiple images may be placed side-by-side)
  7913.         01h line-oriented (use AX=CD06h for vertical paper movement)
  7914.     CX = 07C2h (1986d)
  7915. SeeAlso: AX=CD07h
  7916. --------P-17CD06-----------------------------
  7917. INT 17 - INSET - GRAPHICS LINE FEED
  7918.     AX = CD06h
  7919. Return: AH = completion status
  7920.         00h image complete
  7921.         01h image incomplete
  7922.     CX = 07C2h (1986d)
  7923. SeeAlso: AX=CD09h
  7924. --------P-17CD07-----------------------------
  7925. INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
  7926.     AX = CD07h
  7927. Return: CX = 07C2h
  7928. SeeAlso: AX=CD05h
  7929. --------P-17CD08-----------------------------
  7930. INT 17 - INSET - CANCEL LINK MODE
  7931.     AX = CD08h
  7932. Return: CX = 07C2h
  7933. SeeAlso: AX=CD04h
  7934. --------P-17CD09-----------------------------
  7935. INT 17 - INSET - ALTER TEXT LINE SPACING
  7936.     AX = CD09h
  7937.     CX = line spacing in 1/720th inch
  7938. Return: CX = 07C2h
  7939. Note:    not yet implemented, line spacing is currently fixed at 1/6 inch
  7940. SeeAlso: AX=CD06h
  7941. --------P-17CD0A-----------------------------
  7942. INT 17 - INSET - GET SETUP
  7943.     AX = CD0Ah
  7944.     DS:DX -> buffer for IN.SET data
  7945. Return: CX = 07C2h
  7946. --------P-17CD0B-----------------------------
  7947. INT 17 - INSET - START GETTING SCALED IMAGE
  7948.     AX = CD0Bh
  7949.     DS:SI -> ASCIZ pathname of .PIX file
  7950.     BX = number of bitplanes
  7951.     CX = number of rows in output bitmap
  7952.     DX = number of columns in output bitmap
  7953. Return: AX = status
  7954.         0000h OK
  7955.         FFFFh error
  7956. Note:    image is returned in strips by repeated calls to AX=CD0Ch
  7957. --------P-17CD0C-----------------------------
  7958. INT 17 - INSET - GET NEXT IMAGE STRIP
  7959.     AX = CD0Ch
  7960. Return: AX = status
  7961.         0000h OK but not complete
  7962.         0001h OK and image complete
  7963.         FFFFh error
  7964.     DS:SI -> buffer (max 4K) for bit map strip
  7965.     CX = start row
  7966.     DX = number of rows
  7967.     BX = offset in bytes between bit planes
  7968. Note:    buffer may be overwritten by subsequent calls
  7969. SeeAlso: AX=CD0Bh
  7970. --------P-17E0-------------------------------
  7971. INT 17 - EPP BIOS - INSTALLATION CHECK
  7972.     AH = E0h
  7973. Return: ??? (AH <> E0h if installed ???)
  7974. SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
  7975. --------P-17E1-------------------------------
  7976. INT 17 - EPP BIOS - DISABLE EPP
  7977.     AH = E1h
  7978.     ???
  7979. Return: ???
  7980. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
  7981. --------P-17E2-------------------------------
  7982. INT 17 - EPP BIOS - ENABLE EPP
  7983.     AH = E2h
  7984.     ???
  7985. Return: ???
  7986. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
  7987. --------P-17F0-------------------------------
  7988. INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
  7989.     AH = F0h
  7990.     DX = printer port (0-3)
  7991. Return: AX = 0001h Jetstream present
  7992.          else  non-Jetstream port
  7993. Note:    NorthNet Jetstream is a high-performance DMA-driven parallel card able
  7994.       to drive printers at up to 80000 characters per second
  7995. --------P-17F1-------------------------------
  7996. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
  7997.     AH = F1h
  7998.     CX = data buffer length
  7999.     DX = printer port (0-3)
  8000.     DS:SI -> data buffer
  8001. Return: AX = status
  8002.         0000h printer not ready (see also AH=02h)
  8003.         other printing started
  8004. SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
  8005. --------P-17F2-------------------------------
  8006. INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
  8007.     AH = F2h
  8008.     DX = printer port (0-3)
  8009. Return: AX = status
  8010.         0000h prior print request finished
  8011.         other number of characters left to print
  8012. SeeAlso: AH=02h,AH=F1h,AH=F3h
  8013. --------P-17F3-------------------------------
  8014. INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
  8015.     AH = F3h
  8016.     DX = printer port (0-3)
  8017. Return: AX = number of unprinted characters due to abort
  8018. SeeAlso: AH=F1h,AH=F4h
  8019. --------P-17F4-------------------------------
  8020. INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
  8021.     AH = F4h
  8022.     DX = printer port (0-3)
  8023.     DS:DS -> FAR post address (called with interrupts on)
  8024. SeeAlso: AH=F1h,AH=F3h
  8025. --------P-17F5-------------------------------
  8026. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
  8027.     AH = F5h
  8028.     CX = data buffer length
  8029.     DX = printer port (0-3)
  8030.     DS:SI -> data buffer (32-bit physical address)
  8031. Return: AX = status
  8032.         0000h printer not ready (see also AH=02h)
  8033.         other printing started
  8034. SeeAlso: AH=F1h
  8035. --------c-17FF--BX0000-----------------------
  8036. INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
  8037.     AH = FFh
  8038.     BX = 0000h
  8039.     CX = 0000h
  8040.     DX = printer port number
  8041. Return: AH = printer status (see #0489 at AH=00h)
  8042. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  8043.       operating system by The Software Link, Inc.
  8044. Desc:    close the spool file immediately instead of waiting for the close time
  8045.       to elapse
  8046. SeeAlso: AH=01h,AH=03h"PC-MOS"
  8047. --------B-18---------------------------------
  8048. INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
  8049. Desc:    called when there is no bootable disk available to the system
  8050. Notes:    only PCs produced by IBM contain BASIC in ROM, so the action is
  8051.       unpredictable on compatibles; this interrupt often reboots the
  8052.       system, and often has no effect at all
  8053.     network cards with their own BIOS can hook this interrupt to allow
  8054.       a diskless boot off the network (even when a hard disk is present
  8055.       if none of the partitions is marked as the boot partition)
  8056. SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
  8057. --------J-1800-------------------------------
  8058. INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
  8059.     AH = 00h
  8060. Return: AX = keystroke
  8061. SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
  8062. --------J-1801-------------------------------
  8063. INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
  8064.     AH = 01h
  8065. Return: BH = status
  8066.         00h no keystrokes available
  8067.         01h keystroke available
  8068.         AX = keystroke
  8069. SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
  8070. --------J-1802-------------------------------
  8071. INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
  8072.     AH = 02h
  8073. Return: AL = shift flags
  8074. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
  8075. --------J-1803-------------------------------
  8076. INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
  8077.     AH = 03h
  8078.     ???
  8079. Return: ???
  8080. SeeAlso: AH=00h,AH=04h
  8081. --------J-1804-------------------------------
  8082. INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
  8083.     AH = 04h
  8084.     ???
  8085. Return: ???
  8086. Note:    details are not available at this time
  8087. SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
  8088. --------J-18---------------------------------
  8089. INT 18 - NEC PC-9800 series - VIDEO
  8090.     AH = function
  8091.         0Ah set video mode
  8092.         0Bh get video mode
  8093.         0Ch start text screen display
  8094.         0Dh end text screen display
  8095.         0Eh set single display area
  8096.         0Fh set multiple display area
  8097.         10h set cursor shape
  8098.         11h display cursor
  8099.         12h terminate cursor
  8100.         13h set cursor position
  8101.         14h read font patter
  8102.         16h initialize text video RAM
  8103.         1Ah define user character
  8104.     ???
  8105. Return: ???
  8106. Notes:    details are not available at this time
  8107.     text video RAM is located at segments A000h (characters) and A200h
  8108.       (attributes)
  8109. ----------185350BX4849-----------------------
  8110. INT 18 - SPHINX C-- - WB.COM - API
  8111.     AX = 5350h ('SP')
  8112.     BX = 4849h ('HI')
  8113.     CX = 4E58h ('NX')
  8114.     DH = function
  8115.         01h set ???
  8116.         DL = ???
  8117.         02h get ???
  8118.         Return: DL = ???
  8119.         03h get ???
  8120.         Return: ES:DI -> ??? data buffer
  8121.         06h ???
  8122. Return: AX = 7370h ('sp') if installed
  8123.     BX = 6869h ('hi') if installed
  8124.     CX = 6E78h ('nx') if installed
  8125. Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
  8126.       which is a cross between C and assembler; WB.COM is the driver which
  8127.       launches the WorkBench
  8128. --------s-186900-----------------------------
  8129. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
  8130.     AX = 6900h
  8131. Return: AX = amount of DRAM on card or 0000h if GUS not available
  8132. Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
  8133.       and then shells out the the program requiring its services
  8134. SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
  8135. --------s-186901-----------------------------
  8136. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
  8137.     AX = 6901h
  8138.     BX = number of active voices (14-32)
  8139. Return: nothing
  8140. SeeAlso: AX=6900h
  8141. --------s-186902-----------------------------
  8142. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
  8143.     AX = 6902h
  8144.     BX = voice number (00h-1Fh)
  8145.     CX = linear volume (0000h-01FFh)
  8146. Return: nothing
  8147. SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
  8148. --------s-186903-----------------------------
  8149. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
  8150.     AX = 6903h
  8151.     BX = voice number (00h-1Fh)
  8152.     CX = frequency in Hz (0-44100)
  8153. Return: nothing
  8154. SeeAlso: AX=6902h,AX=6904h
  8155. --------s-186904-----------------------------
  8156. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
  8157.     AX = 6904h
  8158.     BX = voice number (00h-1Fh)
  8159.     CX = balance (0 = left, 7 = even, 15 = right)
  8160. Return: nothing
  8161. SeeAlso: AX=6902h,AX=6903h
  8162. --------s-186905-----------------------------
  8163. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
  8164.     AX = 6905h
  8165.     BL = voice number
  8166.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  8167.     CL = looping type (0 = none, 1 = forward, 2 = back and forth)
  8168.     CH:DI = 20-bit starting address for voice data
  8169.     DL:SI = 20-bit address for loop start
  8170.     DH:BP = 20-bit address for loop end
  8171. SeeAlso: AX=6903h,AX=6906h,AX=690Bh
  8172. --------s-186906-----------------------------
  8173. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
  8174.     AX = 6906h
  8175.     BL = data format (1 = twos-complement, 0 = not)
  8176.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  8177.     CX = number of bytes to send
  8178.     ES:SI -> buffer containing data
  8179.     DL:DI = 20-bit address of GUS DRAM at which to load sound data
  8180. SeeAlso: AX=6900h,AX=6905h,AX=690Ch
  8181. --------s-186907-----------------------------
  8182. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
  8183.     AX = 6907h
  8184.     BX = voice number (00h-1Fh)
  8185. Return: nothing
  8186. SeeAlso: AX=6908h,AX=690Dh
  8187. --------s-186908-----------------------------
  8188. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
  8189.     AX = 6908h
  8190.     BX = voice number (00h-1Fh)
  8191.     CL:DX = 20-bit ending address
  8192. Return: nothing
  8193. SeeAlso: AX=690Bh
  8194. --------s-186909-----------------------------
  8195. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
  8196.     AX = 6909h
  8197.     BL = voice number (00h-1Fh)
  8198.     BH = looping type (0 = none, 1 = forward, 2 = back and forth)
  8199.     CX = starting volume
  8200.     DX = ending volume
  8201.     DI:SI = time
  8202. Return: nothing
  8203. SeeAlso: AX=6902h,AX=690Ah
  8204. --------s-18690A-----------------------------
  8205. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
  8206.     AX = 690Ah
  8207.     BX = voice number (00h-1Fh)
  8208. Return: AX = current non-linear volume for voice
  8209. SeeAlso: AX=6902h,AX=6909h
  8210. --------s-18690B-----------------------------
  8211. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
  8212.     AX = 690Bh
  8213.     BX = voice number
  8214. Return: BX:AX = 20-bit address at which voice is playing
  8215. SeeAlso: AX=6900h,AX=6905h,AX=6908h
  8216. --------s-18690C-----------------------------
  8217. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
  8218.     AX = 690Ch
  8219.     BL = data format (1 = twos-complement, 0 = not)
  8220.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  8221.     CX = number of bytes to get
  8222.     ES:SI -> buffer for retrieved data
  8223.     DL:DI = 20-bit address in GUS DRAM from which to read voice data
  8224. Return: nothing
  8225. SeeAlso: AX=6906h
  8226. --------s-18690D-----------------------------
  8227. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
  8228.     AX = 690Dh
  8229.     BX = voice
  8230.     CX = sample type (0 = 8-bit, 1 = 16-bit)
  8231.     DX = looping type (0 = none, 1 = forward, 2 = back and forth)
  8232. Return: CX = balance value
  8233. SeeAlso: AX=6907h,AX=6908h
  8234. --------s-188000-----------------------------
  8235. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
  8236.     AX = 8000h
  8237. Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
  8238.       INT 18h and then shells out to the program requiring its services
  8239. SeeAlso: AX=8001h,AX=8004h
  8240. --------s-188001-----------------------------
  8241. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
  8242.     AX = 8001h
  8243.     BX:CX -> ASCIZ filename
  8244. SeeAlso: AX=8000h,AX=8002h
  8245. --------s-188002-----------------------------
  8246. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
  8247.     AX = 8002h
  8248. SeeAlso: AX=8002h,AX=8003h
  8249. --------s-188003-----------------------------
  8250. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
  8251.     AX = 8003h
  8252. --------s-188004-----------------------------
  8253. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
  8254.     AX = 8004h
  8255. SeeAlso: AX=8000h,AX=8003h
  8256. --------B-19---------------------------------
  8257. INT 19 - SYSTEM - BOOTSTRAP LOADER
  8258. Desc:    This interrupt reboots the system without clearing memory or restoring
  8259.       interrupt vectors.  Because interrupt vectors are preserved, this
  8260.       interrupt usually causes a system hang if any TSRs have hooked
  8261.       vectors from 00h through 1Ch, particularly INT 08.
  8262. Notes:    Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
  8263.       A: to 0000h:7C00h.  If this fails, and a hard disk is installed, the
  8264.       BIOS will read sector 1, head 0, track 0 of the first hard disk.
  8265.       This sector should contain a master bootstrap loader and a partition
  8266.       table (see #0502).  After loading the master boot sector at
  8267.       0000h:7C00h, the master bootstrap loader is given control.  It will
  8268.       scan the partition table for an active partition, and will then load
  8269.       the operating system's bootstrap loader (contained in the first
  8270.       sector of the active partition) and give it control.
  8271.     true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
  8272.       disk have a valid boot sector
  8273.     to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  8274.       0040h:0072h and jump to FFFFh:0000h.    For a cold boot equivalent to
  8275.       a reset, store 0000h at 0040h:0072h before jumping.
  8276.     VDISK.SYS hooks this interrupt to allow applications to find out how
  8277.       much extended memory has been used by VDISKs (see #0501).  DOS 3.3+
  8278.       PRINT hooks INT 19 but does not set up a correct VDISK header block
  8279.       at the beginning of its INT 19 handler segment, thus causing some
  8280.       programs to overwrite extended memory which is already in use.
  8281.     the default handler is at F000h:E6F2h for 100% compatible BIOSes
  8282.     MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
  8283.       contains extended partitions which point at each other in a loop,
  8284.       since it will never find the end of the linked list of extended
  8285.       partitions
  8286.     under Windows Real and Enhanced modes, calling INT 19 will hang the
  8287.       system in the same was as under bare DOS; under Windows Standard
  8288.       mode, INT 19 will successfully perform a cold reboot as it appears
  8289.       to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
  8290. SeeAlso: INT 14/AH=17h,INT 18,INT 5B"PC Cluster"
  8291.  
  8292. Format of VDISK header block (at beginning of INT 19 handler's segment):
  8293. Offset    Size    Description    (Table 0501)
  8294.  00h 18 BYTEs    n/a (for VDISK.SYS, the device driver header)
  8295.  12h 11 BYTEs    signature string "VDISK     Vn.m" for VDISK.SYS version n.m
  8296.  1Dh 15 BYTEs    n/a
  8297.  2Ch  3 BYTEs    linear address of first byte of available extended memory
  8298.  
  8299. Format of hard disk master boot sector:
  8300. Offset    Size    Description    (Table 0502)
  8301.  00h 446 BYTEs    Master bootstrap loader code
  8302. 1BEh 16 BYTEs    partition record for partition 1 (see #0503)
  8303. 1CEh 16 BYTEs    partition record for partition 2
  8304. 1DEh 16 BYTEs    partition record for partition 3
  8305. 1EEh 16 BYTEs    partition record for partition 4
  8306. 1FEh    WORD    signature, AA55h indicates valid boot block
  8307.  
  8308. Format of partition record:
  8309. Offset    Size    Description    (Table 0503)
  8310.  00h    BYTE    boot indicator (80h = active partition)
  8311.  01h    BYTE    partition start head
  8312.  02h    BYTE    partition start sector (bits 0-5)
  8313.  03h    BYTE    partition start track (bits 8,9 in bits 6,7 of sector)
  8314.  04h    BYTE    operating system indicator (see #0504)
  8315.  05h    BYTE    partition end head
  8316.  06h    BYTE    partition end sector (bits 0-5)
  8317.  07h    BYTE    partition end track (bits 8,9 in bits 6,7 of sector)
  8318.  08h    DWORD    sectors preceding partition
  8319.  0Ch    DWORD    length of partition in sectors
  8320. SeeAlso: #0502
  8321.  
  8322. (Table 0504)
  8323. Values for operating system indicator:
  8324.  00h    empty
  8325.  01h    DOS 12-bit FAT
  8326.  02h    XENIX root file system
  8327.  03h    XENIX /usr file system (obsolete)
  8328.  04h    DOS 16-bit FAT (up to 32M)
  8329.  05h    DOS 3.3+ extended partition
  8330.  06h    DOS 3.31+ Large File System (16-bit FAT, over 32M)
  8331.  07h    QNX
  8332.  07h    OS/2 HPFS
  8333.  07h    Windows NT NTFS
  8334.  07h    Advanced Unix
  8335.  08h    AIX bootable partition, SplitDrive
  8336.  09h    AIX data partition
  8337.  09h    Coherent filesystem
  8338.  0Ah    OS/2 Boot Manager
  8339.  0Ah    OPUS
  8340.  0Ah    Coherent swap partition
  8341.  10h    OPUS
  8342.  11h    OS/2 Boot Manager hidden 12-bit FAT partition
  8343.  12h    Compaq Diagnostics partition
  8344.  14h    (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
  8345.  14h    OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
  8346.  16h    OS/2 Boot Manager hidden over-32M 16-bit FAT partition
  8347.  17h    OS/2 Boot Manager hidden HPFS partition
  8348.  18h    AST special Windows swap file
  8349.  24h    NEC MS-DOS 3.x
  8350.  3Ch    PowerQuest PartitionMagic recovery partition
  8351.  40h    VENIX 80286
  8352.  42h    SFS (Secure File System) by Peter Gutmann
  8353.  50h    Disk Manager, read-only partition
  8354.  51h    Disk Manager, read/write partition
  8355.  51h    Novell???
  8356.  52h    CP/M
  8357.  52h    Microport System V/386
  8358.  56h    GoldenBow VFeature
  8359.  61h    SpeedStor
  8360.  63h    Unix SysV/386, 386/ix
  8361.  63h    Mach, MtXinu BSD 4.3 on Mach
  8362.  63h    GNU HURD
  8363.  64h    Novell NetWare
  8364.  65h    Novell NetWare (3.11)
  8365.  70h    DiskSecure Multi-Boot
  8366.  75h    PC/IX
  8367.  80h    Minix v1.1 - 1.4a
  8368.  81h    Minix v1.4b+
  8369.  81h    Linux
  8370.  81h    Mitac Advanced Disk Manager
  8371.  82h    Linux Swap partition
  8372.  83h    Linux native file system (ext2fs/xiafs)
  8373.  84h    OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
  8374.  93h    Amoeba file system
  8375.  94h    Amoeba bad block table
  8376.  A5h    FreeBSD
  8377.  B7h    BSDI file system (secondarily swap)
  8378.  B8h    BSDI swap partition (secondarily file system)
  8379.  C1h    DR-DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
  8380.  C4h    DR-DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
  8381.  C6h    DR-DOS 6.0 LOGIN.EXE-secured Huge partition
  8382.  C7h    Cyrnix Boot
  8383.  DBh    CP/M, Concurrent CP/M, Concurrent DOS
  8384.  DBh    CTOS (Convergent Technologies OS)
  8385.  E1h    SpeedStor 12-bit FAT extended partition
  8386.  E4h    SpeedStor 16-bit FAT extended partition
  8387.  F2h    DOS 3.3+ secondary
  8388.  F4h    SpeedStor
  8389.  FEh    LANstep
  8390.  FFh    Xenix bad block table
  8391. SeeAlso: #0503
  8392. --------B-1A00-------------------------------
  8393. INT 1A - TIME - GET SYSTEM TIME
  8394.     AH = 00h
  8395. Return: CX:DX = number of clock ticks since midnight
  8396.     AL = midnight flag, nonzero if midnight passed since time last read
  8397. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  8398.     IBM and many clone BIOSes set the flag for AL rather than incrementing
  8399.       it, leading to loss of a day if two consecutive midnights pass
  8400.       without a request for the time (e.g. if the system is on but idle)
  8401.     since the midnight flag is cleared, if an application calls this
  8402.       function after midnight before DOS does, DOS will not receive the
  8403.       midnight flag and will fail to advance the date
  8404. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 62/AX=0099h
  8405. --------B-1A01-------------------------------
  8406. INT 1A - TIME - SET SYSTEM TIME
  8407.     AH = 01h
  8408.     CX:DX = number of clock ticks since midnight
  8409. SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
  8410. --------B-1A02-------------------------------
  8411. INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
  8412.     AH = 02h
  8413. Return: CF clear if successful
  8414.         CH = hour (BCD)
  8415.         CL = minutes (BCD)
  8416.         DH = seconds (BCD)
  8417.         DL = daylight savings flag (00h standard time, 01h daylight time)
  8418.     CF set on error (i.e. clock not running or in middle of update)
  8419. Note:    this function is also supported by the Sperry PC, which predates the
  8420.       IBM AT; the data is returned in binary rather than BCD on the Sperry,
  8421.       and DL is always 00h
  8422. SeeAlso: AH=00h
  8423. --------B-1A03-------------------------------
  8424. INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
  8425.     AH = 03h
  8426.     CH = hour (BCD)
  8427.     CL = minutes (BCD)
  8428.     DH = seconds (BCD)
  8429.     DL = daylight savings flag (00h standard time, 01h daylight time)
  8430. Note:    this function is also supported by the Sperry PC, which predates the
  8431.       IBM AT; the data is specified in binary rather than BCD on the
  8432.       Sperry, and the value of DL is ignored
  8433. SeeAlso: AH=01h
  8434. --------B-1A04-------------------------------
  8435. INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
  8436.     AH = 04h
  8437. Return: CF clear if successful
  8438.         CH = century (BCD)
  8439.         CL = year (BCD)
  8440.         DH = month (BCD)
  8441.         DL = day (BCD)
  8442.     CF set on error
  8443. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah
  8444. --------b-1A04-------------------------------
  8445. INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
  8446.     AH = 04h
  8447. Return: CF clear if successful
  8448.         CL = year-1980
  8449.         DH = month (binary)
  8450.         DL = day (binary)
  8451.     CF set on error
  8452. SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah
  8453. --------B-1A05-------------------------------
  8454. INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
  8455.     AH = 05h
  8456.     CH = century (BCD)
  8457.     CL = year (BCD)
  8458.     DH = month (BCD)
  8459.     DL = day (BCD)
  8460. SeeAlso: AH=04h,INT 21/AH=2Bh
  8461. --------b-1A04-------------------------------
  8462. INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
  8463.     AH = 04h
  8464.     CL = year-1980
  8465.     DH = month (binary)
  8466.     DL = day (binary)
  8467. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh
  8468. --------B-1A06-------------------------------
  8469. INT 1A - TIME - SET ALARM (AT,XT286,PS)
  8470.     AH = 06h
  8471.     CH = hour (BCD)
  8472.     CL = minutes (BCD)
  8473.     DH = seconds (BCD)
  8474. Return: CF set on error (alarm already set or clock stopped for update)
  8475.     CF clear if successful
  8476. Notes:    the alarm occurs every 24 hours until turned off, invoking INT 4A each
  8477.       time
  8478.     the BIOS does not check for invalid values for the time, so the CMOS
  8479.       clock chip's "don't care" setting (any values between C0h and FFh)
  8480.       may be used for any or all three part.  For example, to create an
  8481.       alarm once a minute, every minute, call with CH=C0h, CL=C0h, and
  8482.       DH=00h.
  8483. SeeAlso: AH=07h,INT 4A
  8484. --------B-1A07-------------------------------
  8485. INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
  8486.     AH = 07h
  8487. Return: alarm disabled
  8488. Note:    does not disable the real-time clock's IRQ
  8489. SeeAlso: AH=06h,INT 70
  8490. --------B-1A08-------------------------------
  8491. INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
  8492.     AH = 08h
  8493.     CH = hours in BCD
  8494.     CL = minutes in BCD
  8495.     DH = seconds in BCD
  8496. SeeAlso: AH=09h
  8497. --------B-1A09-------------------------------
  8498. INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
  8499.     AH = 09h
  8500. Return: CH = hours in BCD
  8501.     CL = minutes in BCD
  8502.     DH = seconds in BCD
  8503.     DL = alarm status
  8504.         00h alarm not enabled
  8505.         01h alarm enabled but will not power up system
  8506.         02h alarm will power up system
  8507. SeeAlso: AH=08h
  8508. --------B-1A0A-------------------------------
  8509. INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
  8510.     AH = 0Ah
  8511. Return: CF set on error
  8512.     CF clear if successful
  8513.         CX = count of days since Jan 1,1980
  8514. SeeAlso: AH=04h,AH=0Bh
  8515. --------B-1A0B-------------------------------
  8516. INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
  8517.     AH = 0Bh
  8518.     CX = count of days since Jan 1,1980
  8519. Return: CF set on error
  8520.     CF clear if successful
  8521. SeeAlso: AH=05h,AH=0Ah
  8522. --------J-1A10-------------------------------
  8523. INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
  8524.     AH = 10h
  8525.     ???
  8526. Return: ???
  8527. SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
  8528. --------J-1A11-------------------------------
  8529. INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
  8530.     AH = 11h
  8531.     ???
  8532. Return: ???
  8533. SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
  8534. --------J-1A12-------------------------------
  8535. INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
  8536.     AH = 12h
  8537.     ???
  8538. Return: ???
  8539. SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
  8540. --------A-1A3601-----------------------------
  8541. INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
  8542.     AX = 3601h
  8543. Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
  8544.         ASCIZ string "WPCORP\0"
  8545. Notes:    WordPerfect 5.0 will call this interrupt at start up to determine if a
  8546.       third party product wants to interface with it.  The third party
  8547.       product must intercept this interrupt and return the address of a
  8548.       keyboard monitor routine.
  8549.     Before checking for keyboard input, and after every key entered by the
  8550.       user, Word Perfect will call the routine whose address was provided
  8551.       in DS:SI with the following parameters:
  8552.         Entry:    AX = key code or 0
  8553.             BX = WordPerfect state flag
  8554.         Exit:    AX = 0 or key code
  8555.             BX = 0 or segment address of buffer with key codes
  8556.     See the "WordPerfect 5.0 Developer's Toolkit" for further information.
  8557. SeeAlso: INT 16/AX=5500h
  8558. --------N-1A6108-----------------------------
  8559. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
  8560.     AX = 6108h
  8561.     STACK:    WORD    conversation ID (0000h-0009h)
  8562.         DWORD    pointer to message buffer
  8563.         WORD    length of message
  8564.         DWORD    pointer to reply buffer
  8565.         WORD    length of reply buffer
  8566.         WORD    0000h (use default "Cparams" structure)
  8567. Return: AX = status (see #0505)
  8568.     STACK unchanged
  8569. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8570.       which implements the Simple Network Application Protocol
  8571. SeeAlso: AX=6205h
  8572.  
  8573. (Table 0505)
  8574. Values for SNAP.EXE status:
  8575.  0000h    successful
  8576.  F830h    "SNAP_ABORTED"
  8577.  FC04h    "SNAP_SERVERDIED"
  8578.  FC05h    "SNAP_RESEND"
  8579.  FC06h    "SNAP_SELECTFAILED"
  8580.  FC07h    "SNAP_WRONGVERSION"
  8581.  FC08h    "SNAP_INVALIDACK"
  8582.  FC09h    "SNAP_TIMEOUT"
  8583.  FC0Ah    "SNAP_SERVERREJECT"
  8584.  FC0Bh    "SNAP_NOREPLYDUE"
  8585.  FC0Ch    "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
  8586.  FC0Dh    "SNAP_NOINIT"
  8587.  FC0Eh    "SNAP_SOCKETERROR"
  8588.  FC0Fh    "SNAP_BUFFERLIMIT"
  8589.  FC10h    "SNAP_INVALIDCID"
  8590.  FC11h    "SNAP_INVALIDOP"
  8591.  FC12h    "SNAP_XMITFAIL"
  8592.  FC13h    "SNAP_NOMORERETRIES"
  8593.  FC14h    "SNAP_BADPARMS"
  8594.  FC15h    "SNAP_NOMEMORY"
  8595.  FC16h    "SNAP_NOMORECONVS"
  8596.  FFFFh    failed (invalid function/parameter)
  8597. --------N-1A6205-----------------------------
  8598. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
  8599.     AX = 6205h
  8600.     STACK:    WORD    conversation ID (0000h-0009h)
  8601.         DWORD    pointer to message
  8602.         WORD    length of message
  8603.         WORD    0000h (use default "Cparms" structure)
  8604. Return: AX = status (see #0505)
  8605.     STACK unchanged
  8606. SeeAlso: AX=6108h
  8607. --------N-1A6308-----------------------------
  8608. INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
  8609.     AX = 6308h
  8610.     STACK:    WORD    offset of ASCIZ "guardian"
  8611.         WORD    offset of ASCIZ hostname
  8612.         WORD    offset of ASCIZ server name
  8613.         WORD    offset of ASCIZ userid
  8614.         WORD    offset of ASCIZ password
  8615.         WORD    offset of password length
  8616.         WORD    offset of password type
  8617.         WORD    offset of "Cparms" structure (see #0506)
  8618. Return: ???
  8619.     STACK unchanged
  8620. Note:    all stacked offsets are within the SNAP data segment (use AX=6A01h
  8621.       to allocate a buffer)
  8622. SeeAlso: AX=6405h,AX=7202h
  8623.  
  8624. Format of SNAP.EXE Cparms structure:
  8625. Offset    Size    Description    (Table 0506)
  8626.  00h    WORD    retry delay in seconds
  8627.  02h    WORD    timeout delay in seconds
  8628.  04h    WORD    maximum buffer size
  8629.  06h    WORD    encryption level
  8630. --------N-1A6405-----------------------------
  8631. INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
  8632.     AX = 6405h
  8633.     STACK:    WORD    conversation ID (0000h-0009h)
  8634.         DWORD    pointer to message buffer
  8635.         WORD    length of message
  8636.         WORD    0000h (use default "Cparms" structure)
  8637. Return: AX = status (see #0505)
  8638.     STACK unchanged
  8639. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8640.       which implements the Simple Network Application Protocol
  8641. SeeAlso: AX=6308h
  8642. --------N-1A6900-----------------------------
  8643. INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
  8644.     AX = 6900h
  8645. Return: AX = value used for DS by resident code
  8646. SeeAlso: AX=6A01h,AX=6F01h
  8647. --------N-1A6A01-----------------------------
  8648. INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
  8649.     AX = 6A01h
  8650.     STACK:    WORD    number of bytes to allocate
  8651. Return: AX = offset of allocated buffer or 0000h if out of memory
  8652.     STACK unchanged
  8653. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8654.       which implements the Simple Network Application Protocol
  8655. SeeAlso: AX=6B01h
  8656. --------N-1A6B01-----------------------------
  8657. INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
  8658.     AX = 6B01h
  8659.     STACK:    WORD    offset within SNAP data segment of previously allocated
  8660.             buffer
  8661. Return: STACK unchanged
  8662. Note:    this call is a NOP if the specified offset is 0000h
  8663. SeeAlso: AX=6A01h
  8664. --------N-1A6C04-----------------------------
  8665. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
  8666.     AX = 6C04h
  8667.     STACK:    WORD    offset within SNAP data segment of dest (nonzero)
  8668.         WORD    segment of source buffer
  8669.         WORD    offset of source buffer
  8670.         WORD    number of bytes to copy
  8671. Return: AX = offset of byte after last one copied to destination
  8672.     STACK unchanged
  8673. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8674.       which implements the Simple Network Application Protocol
  8675. SeeAlso: AX=6D04h
  8676. --------N-1A6D04-----------------------------
  8677. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
  8678.     AX = 6D04h
  8679.     STACK:    WORD    offset within SNAP data segment of source buffer
  8680.         WORD    segment of destination buffer
  8681.         WORD    offset of destination buffer
  8682.         WORD    number of bytes to copy
  8683. Return: AX = offset of byte after last one copied from source
  8684.     buffer filled
  8685.     STACK unchanged
  8686. SeeAlso: AX=6C04h
  8687. --------N-1A6E01-----------------------------
  8688. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
  8689.     AX = 6E01h
  8690.     STACK:    WORD    new value for ???
  8691. Return: AX = old value of ???
  8692.     STACK unchanged
  8693. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8694.       which implements the Simple Network Application Protocol
  8695. --------N-1A6F01-----------------------------
  8696. INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
  8697.     AX = 6F01h
  8698.     STACK: WORD 0000h
  8699. Return: AX = status
  8700.         0000h SNAP is resident
  8701.         other SNAP not present
  8702.     STACK unchanged
  8703. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8704.       which implements the Simple Network Application Protocol, and is
  8705.       required by PCVENUS (a network shell).  The combination of SNAP and
  8706.       PCVENUS allows the use of the Andrew File System as one or more
  8707.       networked drives.
  8708. SeeAlso: AX=6900h,AX=7400h
  8709. --------N-1A7002-----------------------------
  8710. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
  8711.     AX = 7002h
  8712.     STACK:    WORD    anchor number (0000h-0009h)
  8713.         WORD    new value for the anchor
  8714. Return: AX = status
  8715.         0000h successful
  8716.         FFFFh failed (top word on stack not in range 00h-09h)
  8717.     STACK unchanged
  8718. SeeAlso: AX=7101h
  8719. --------N-1A7101-----------------------------
  8720. INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
  8721.     AX = 7101h
  8722.     STACK:    WORD    anchor number (0000h-0009h)
  8723. Return: AX = anchor's value
  8724.     STACK unchanged
  8725. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8726.       which implements the Simple Network Application Protocol
  8727. SeeAlso: AX=7002h
  8728. --------N-1A7202-----------------------------
  8729. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
  8730.     AX = 7202h
  8731.     STACK:    WORD    conversation ID (0000h-0009h)
  8732.         WORD    offset within resident data segment of "Cparms"
  8733.               structure (see #0506)
  8734. Return: AX = status???
  8735.     STACK unchanged
  8736. SeeAlso: AX=6308h
  8737. --------N-1A7302-----------------------------
  8738. INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
  8739.     AX = 7302h
  8740.     STACK:    WORD    conversation ID (0000h-0009h)
  8741.         WORD    offset within resident data segment of ???
  8742. Return: AX = ???
  8743.     ???
  8744.     STACK unchanged
  8745. SeeAlso: AX=7400h
  8746. --------N-1A7400-----------------------------
  8747. INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
  8748.     AX = 7400h
  8749. Return: AX = version (AH=major, AL=minor)
  8750. Note:    this call is only valid if SNAP is installed
  8751. SeeAlso: AX=7302h,INT 1A/AX=6F01h
  8752. --------N-1A75-------------------------------
  8753. INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
  8754.     AH = 75h
  8755.     AL = ???
  8756. Return: AX = ??? (0000h)
  8757. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8758.       which implements the Simple Network Application Protocol
  8759. --------N-1A76-------------------------------
  8760. INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
  8761.     AH = 76h
  8762.     AL = ???
  8763. Return: AX = ???
  8764. --------N-1A77-------------------------------
  8765. INT 1A - SNAP.EXE 3.4 - ???
  8766.     AH = 77h
  8767.     AL = ??? (at least 01h)
  8768.     STACK:    WORD    ???
  8769.         ???
  8770. Return: ???
  8771.     STACK unchanged
  8772. --------N-1A7802-----------------------------
  8773. INT 1A - SNAP.EXE 3.4 - ???
  8774.     AX = 7802h
  8775.     STACK:    WORD    ???
  8776.         WORD    ???
  8777. Return: ???
  8778.     STACK unchanged
  8779. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  8780.       which implements the Simple Network Application Protocol
  8781. --------s-1A7F-------------------------------
  8782. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  8783.     AH = 7Fh
  8784.     ???
  8785. Return: ???
  8786. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  8787. SeeAlso: AH=80h,AH=83h,AH=85h
  8788. --------s-1A80-------------------------------
  8789. INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
  8790.     AH = 80h
  8791.     AL = 00h source is 8253 channel 2
  8792.          01h source is cassette input
  8793.          02h source is I/O channel "Audio IN"
  8794.          03h source is sound generator chip
  8795. Note:    although documented in the 1000TL Technical Reference, the 1000TL
  8796.       BIOS has just an IRET for this call
  8797. SeeAlso: AH=7Fh,AH=83h
  8798. --------X-1A80-------------------------------
  8799. INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
  8800.     AH = 80h
  8801. Return: CF clear if successful
  8802.         CX = 5353h ('SS') if Socket Services installed
  8803.         AL = number of adapters present (0-16)
  8804.         AH destroyed
  8805.     CF set on error
  8806.         AH = error code (see #0507)
  8807. SeeAlso: AH=83h"PCMCIA"
  8808.  
  8809. (Table 0507)
  8810. Values for PCMCIA error codes:
  8811.  01h    "BAD_ADAPTER" nonexistent adapter
  8812.  02h    "BAD_ATTRIBUTE" invalid attribute specified
  8813.  03h    "BAD_BASE" invalid system memory base address
  8814.  04h    "BAD_EDC" invalid EDC generator specified
  8815.  05h    "BAD_INDICATOR" invalid indicator specified
  8816.  06h    "BAD_IRQ" invalid IRQ channel specified
  8817.  07h    "BAD_OFFSET" invalid PCMCIA card offset specified
  8818.  08h    "BAD_PAGE" invalid page specified
  8819.  09h    "BAD_READ" unable to complete request
  8820.  0Ah    "BAD_SIZE" invalid window size specified
  8821.  0Bh    "BAD_SOCKET" nonexistent socket specified
  8822.  0Ch    "BAD_TECHNOLOGY" unsupported Card Technology for writes
  8823.  0Dh    "BAD_TYPE" unavailable window type specified
  8824.  0Eh    "BAD_VCC" invalid Vcc power level index specified
  8825.  0Fh    "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
  8826.  10h    "BAD_WAIT" invalid number of wait states specified
  8827.  11h    "BAD_WINDOW" nonexistent window specified
  8828.  12h    "BAD_WRITE" unable to complete request
  8829.  13h    "NO_ADAPTERS" no adapters installed, but Socket Services is present
  8830.  14h    "NO_CARD" no card in socket
  8831. --------X-1A81-------------------------------
  8832. INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
  8833.     AH = 81h
  8834.     DS:DX -> callback routine (see #0508) or 0000h:0000h to disable
  8835. Return: CF clear if successful
  8836.         AH destroyed
  8837.     CF set on error
  8838.         AH = error code (see #0507)
  8839. Note:    the callback will be invoked on any socket changes whose notification
  8840.       has not been disabled with the status change enable mask; it may be
  8841.       invoked either while processing a hardware interrupt from the adapter
  8842.       or while processing the following Socket Services request
  8843. SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
  8844.  
  8845. (Table 0508)
  8846. Values PCMCIA callback routine is invoked with:
  8847.     AL = adapter number
  8848.     BH = status change interrupt enable mask (see #0509)
  8849.     BL = socket number
  8850.     DH = current socket status (see #0510)
  8851.     DL = current card status (see #0511)
  8852. Return: all registers preserved
  8853. Notes:    the callback may be invoked during a hardware interrupt, and may not
  8854.       call on Socket Services
  8855.     the callback will be invoked once for each socket with a status change
  8856.  
  8857. Bitfields for PCMCIA status change interrupt enable mask:
  8858. Bit(s)    Description    (Table 0509)
  8859.  7    card detect change
  8860.  6    ready change
  8861.  5    battery warning change
  8862.  4    battery dead change
  8863.  3    insertion request
  8864.  2    ejection request
  8865.  1-0    reserved (0)
  8866.  
  8867. Bitfields for PCMCIA current socket status:
  8868. Bit(s)    Description    (Table 0510)
  8869.  7    card changed
  8870.  6    reserved (0)
  8871.  5    card insertion complete
  8872.  4    card ejection complete
  8873.  3    card insertion request pending
  8874.  2    card ejection request pending
  8875.  1    card locked
  8876.  0    reserved (0)
  8877.  
  8878. Bitfields for PCMCIA current card status:
  8879. Bit(s)    Description    (Table 0511)
  8880.  7    card detect
  8881.  6    ready
  8882.  5    battery voltage detect 2 (battery warning)
  8883.  4    battery voltage detect 1 (battery dead)
  8884.  3-1    reserved (0)
  8885.  0    write protected
  8886. --------s-1A8100-----------------------------
  8887. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
  8888.     AX = 8100h
  8889. Return: AL > 80h if supported
  8890.     AX = 00C4h if supported (1000SL/TL)
  8891.         CF set if sound chip is busy
  8892.         CF clear  if sound chip is free
  8893. Note:    the value of CF is not definitive; call this function until CF is
  8894.       clear on return, then call AH=84h"Tandy"
  8895. --------s-1A82-------------------------------
  8896. INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
  8897.     AH = 82h
  8898.     ES:BX -> buffer for sound samples
  8899.     CX = length of buffer
  8900.     DX = transfer rate (1-4095, 1 is fastest)
  8901. Return: AH = 00h
  8902.     CF set if sound busy
  8903.     CF clear if sound chip free
  8904. Note:    the value in DX should be 1/10 the corresponding value for
  8905.       INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL.  Call
  8906.       INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
  8907.     The BIOS issues an INT 15/AX=91FBh when the input is complete
  8908.     DMA across a 64K boundary is masked by the BIOS
  8909. --------X-1A82-------------------------------
  8910. INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
  8911.     AH = 82h
  8912.     DS:DX -> callback routine (see #0512) or 0000h:0000h
  8913. Return: CF clear if successful
  8914.         AH destroyed
  8915.     CF set on error
  8916.         AH = error code (see #0507)
  8917. Note:    the callback is invoked on a Write Multiple request with an unsupported
  8918.       card technology type
  8919. SeeAlso: AH=81h"PCMCIA",AH=94h
  8920.  
  8921. (Table 0512)
  8922. Values PCMCIA callback routine is invoked with:
  8923.     ES:AX -> Low-Level Socket Services Routines (see #0514)
  8924.     BH = socket attributes (see #0513)
  8925.     CX = number of bytes or words to write
  8926.     DS:SI -> data buffer to be written
  8927.     DX:DI -> 26-bit linear card address
  8928.     BP = card technology type
  8929. Return: CF clear if successful
  8930.     CF set on error
  8931.         AH = error code (07h,0Ch,12h,14h) (see #0507)
  8932.  
  8933. Bitfields for PCMCIA socket attributes:
  8934. Bit(s)    Description    (Table 0513)
  8935.  7-4    reserved (0)
  8936.  3    packed buffer
  8937.  2    even bytes only (only valid if 1 set)
  8938.  1    data width (clear = byte, set = word)
  8939.  0    memory type (clear = common, set = attribute)
  8940.  
  8941. Format of PCMCIA Low-Level Socket Services Routines:
  8942. Offset    Size    Description    (Table 0514)
  8943.  00h    WORD    offset of Write Many routine (see #0515)
  8944.  02h    WORD    offset of Write One routine (see #0516)
  8945.  04h    WORD    offset of Read One routine (see #0517)
  8946.  06h    WORD    offset of Increment Offset routine (see #0518)
  8947.  08h    WORD    offset of Set Offset routine (see #0519)
  8948.  0Ah    WORD    offset of Get Status routine (see #0520)
  8949.  
  8950. (Table 0515)
  8951. Call Write Many routine with:
  8952.     BH = socket attributes (see #0513)
  8953.     CX = number of bytes or words to write
  8954.     DS:SI -> data to be written
  8955. Return: CF clear if successful
  8956.     CF set on error
  8957.  
  8958. (Table 0516)
  8959. Call Write One routine with:
  8960.     AL/AX = data to be written
  8961.     BH = socket attributes (see #0513)
  8962. Return: CF clear if successful
  8963.     CF set on error
  8964.  
  8965. (Table 0517)
  8966. Call Read One routine with:
  8967.     BH = socket attributes (see #0513)
  8968. Return: CF clear if successful
  8969.         AL/AX = data read
  8970.     CF set on error
  8971.  
  8972. (Table 0518)
  8973. Call Increment Offset routine with:
  8974.     BH = socket attributes (see #0513)
  8975. Return: CF clear if successful
  8976.     CF set on error
  8977.  
  8978. (Table 0519)
  8979. Call Set Offset routine with:
  8980.     DX:DI = new offset address
  8981. Return: CF clear if successful
  8982.     CF set on error
  8983.  
  8984. (Table 0520)
  8985. Call Get Status routine with:
  8986.     nothing
  8987. Return: AL = current card status (see #0511)
  8988. --------s-1A83-------------------------------
  8989. INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
  8990.     AH = 83h
  8991.     AL = volume (0=silence, 7=highest)
  8992.     CX = number of bytes to play
  8993.     DX = time between sound samples (multiples of 273 nanoseconds)
  8994.         only bits 11-0 used
  8995.     ES:BX -> sound data (array of 8-bit unsigned PCM samples)
  8996. Return: AH = 00h
  8997.     CF set if sound is busy
  8998.     CF clear if sound chip is free
  8999. Notes:    this call returns immediately while the sound plays in the
  9000.       background; the sound chip is clocked at 3.57 MHz, with the low 12
  9001.       bits of DX specifying the clock divisor
  9002.     The BIOS appears to call INT 15/AX=91FBh when the sound device
  9003.       underflows to allow another INT 1A/AH=83h for seamless playing of
  9004.       long sounds.
  9005. SeeAlso: AH=84h"Tandy",INT 15/AH=91h
  9006. --------X-1A83-------------------------------
  9007. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
  9008.     AH = 83h
  9009.     AL = adapter number
  9010. Return: CF clear if successful
  9011.         AX = Socket Services version (BCD)
  9012.         BX = implementation version (BCD)
  9013.         CX = 5353h ("SS")
  9014.         DS:SI -> ASCIZ implementor description
  9015.     CF set on error
  9016.         AH = error code (01h) (see #0507)
  9017. Note:    the current version (from the Revision A.00 documentation) of Socket
  9018.       Services is 1.00 (AX=0100h)
  9019. SeeAlso: AH=80h"PCMCIA"
  9020. --------s-1A84-------------------------------
  9021. INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
  9022.     AH = 84h
  9023. Return: ???
  9024. Note:    the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
  9025. SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
  9026. --------X-1A84-------------------------------
  9027. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
  9028.     AH = 84h
  9029.     AL = adapter number
  9030. Return: CF clear if successful
  9031.         AH destroyed
  9032.         BH = number of windows
  9033.         BL = number of sockets (1-16)
  9034.         CX = number of EDCs
  9035.         DH = capabilities (see #0521)
  9036.         DL = status change interrupt used (only if DH bit 3 set)(see #0522)
  9037.     CF set on error
  9038.         AH = error code (01h) (see #0507)
  9039. SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
  9040.  
  9041. Bitfields for PCMCIA capabilities:
  9042. Bit(s)    Description    (Table 0521)
  9043.  7-6    reserved (0)
  9044.  5    status change interrupt is hardware shareable
  9045.  4    status change interrupt is software shareable
  9046.  3    status change interrupt
  9047.  2    data bus width is per-socket rather than per-window
  9048.  1    power management is per-adapter rather than per-socket
  9049.  0    indicators are per-adapter rather than per-socket
  9050.  
  9051. (Table 0522)
  9052. Values for PCMCIA status change interrupt usage:
  9053.  00h-0Fh IRQ level
  9054.  10h    NMI
  9055.  11h    I/O check
  9056.  12h    bus error
  9057.  13h    vendor specific
  9058.  14h-FFh reserved
  9059. --------s-1A85-------------------------------
  9060. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  9061.     AH = 85h
  9062.     ???
  9063. Return: ???
  9064. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  9065. SeeAlso: AH=7Fh,AH=83h"Tandy"
  9066. --------X-1A85-------------------------------
  9067. INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
  9068.     AH = 85h
  9069.     AL = adapter number
  9070. Return: CF clear if successful
  9071.         AH destroyed
  9072.         DH = adapter attributes (see #0523)
  9073.     CF set on error
  9074.         AH = error code (01h) (see #0507)
  9075. SeeAlso: AH=84h"PCMCIA",AH=86h
  9076.  
  9077. Bitfields for PCMCIA adapter attributes:
  9078. Bit(s)    Description    (Table 0523)
  9079.  7-5    reserved (0)
  9080.  4    hardware share status change
  9081.  3    software share status change
  9082.  2    enable status change interrupts
  9083.  1    adapter preserves state information during reduced power consumption
  9084.  0    attempting to reduce power consumption
  9085. --------X-1A86-------------------------------
  9086. INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
  9087.     AH = 86h
  9088.     AL = adapter number
  9089.     DH = new adapter attributes (see #0523)
  9090. Return: CF clear if successful
  9091.         AH destroyed
  9092.     CF set on error
  9093.         AH = error code (01h) (see #0507)
  9094. SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
  9095. --------X-1A87-------------------------------
  9096. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
  9097.     AH = 87h
  9098.     AL = adapter number
  9099.     BH = window number
  9100. Return: CF clear if successful
  9101.         AH destroyed
  9102.         BL = capabilities (see #0524)
  9103.         CX = bitmap of assignable sockets
  9104.         DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
  9105.         DL = supported access speeds (see #0525)
  9106.         DS:SI -> Memory Window Characteristics table (see #0526)
  9107.         DS:DI -> I/O Window Characteristics table (see #0527)
  9108.     CF set on error
  9109.         AH = error code (01h,11h) (see #0507)
  9110. SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
  9111.  
  9112. Bitfields for PCMCIA window capabilities:
  9113. Bit(s)    Description    (Table 0524)
  9114.  7-5    reserved (0)
  9115.  4    separate enable for EISA comon space
  9116.  3    EISA I/O mappable
  9117.  2    I/O space
  9118.  1    attribute memory
  9119.  0    common memory
  9120.  
  9121. Bitfields for PCMCIA supported access speeds:
  9122. Bit(s)    Description    (Table 0525)
  9123.  7    reserved (0)
  9124.  6    600 ns
  9125.  5    300 ns
  9126.  4    250 ns
  9127.  3    200 ns
  9128.  2    150 ns
  9129.  1    100 ns
  9130.  0    WAIT line monitoring
  9131.  
  9132. Format of PCMCIA Memory Window Characteristics table:
  9133. Offset    Size    Description    (Table 0526)
  9134.  00h    WORD    window capabilities (see #0528)
  9135.  02h    WORD    minimum base address in 4K pages
  9136.  04h    WORD    maximum base address in 4K pages
  9137.  06h    WORD    minimum window size in 4K pages
  9138.  08h    WORD    maximum window size in 4K pages
  9139.  0Ah    WORD    window size granularity (4K units)
  9140.  0Ch    WORD    required base address alignment (4K units)
  9141.  0Eh    WORD    required card offset alignment (4K units)
  9142.  
  9143. Format of PCMCIA I/O Window Characteristics table:
  9144. Offset    Size    Description    (Table 0527)
  9145.  00h    WORD    window capabilities (see #0528)
  9146.  02h    WORD    minimum base address in bytes
  9147.  04h    WORD    maximum base address in bytes
  9148.  06h    WORD    minimum window size in bytes
  9149.  08h    WORD    maximum window size in bytes
  9150.  0Ah    WORD    window size granularity (bytes)
  9151.  
  9152. Bitfields for PCMCIA window capabilities:
  9153. Bit(s)    Description    (Table 0528)
  9154.  0    programmable base address
  9155.  1    programmable window size
  9156.  2    window disable/enable supported
  9157.  3    8-data bus
  9158.  4    16-data bus
  9159.  5    base address alignment on size boundary required
  9160.  6    power-of-two size granularity
  9161. ---memory windows---
  9162.  7    card offset must be aligned on size boundary
  9163.  8    paging hardware available
  9164.  9    paging hardware shared
  9165.  10    page disable/enable supported
  9166.  11-15    reserved (0)
  9167. ---I/O windows---
  9168.  7-15    reserved (0)
  9169. --------X-1A88-------------------------------
  9170. INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
  9171.     AH = 88h
  9172.     AL = adapter number
  9173.     BH = window number
  9174. Return: CF clear if successful
  9175.         AH destroyed
  9176.         BL = socket number (0-16) (0 = not assigned)
  9177.         CX = window size (bytes for I/O window, 4K units for memory window)
  9178.         DH = window attributes (see #0529)
  9179.         DL = access speed (only one bit set) (see #0525)
  9180.         SI = window base address (bytes if I/O, 4K units if memory)
  9181.         DI = card offset address (memory only, 4K units)
  9182.     CF set on error
  9183.         AH = error code (01h,11h) (see #0507)
  9184. SeeAlso: AH=87h,AH=89h,AH=8Ah
  9185.  
  9186. Bitfields for PCMCIA window attributes:
  9187. Bit(s)    Description    (Table 0529)
  9188.  0    memory-mapped rather than I/O-mapped
  9189.  1    attribute memory rather than common (memory-mapped)
  9190.     EISA mapped (I/O)
  9191.  2    enabled
  9192.  3    16-data path
  9193.  4    subdivided into pages (memory-mapped only)
  9194.  5    non-specific access slot enable (EISA-mapped only)
  9195.  6-7    reserved (0)
  9196. --------X-1A89-------------------------------
  9197. INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
  9198.     AH = 89h
  9199.     AL = adapter number
  9200.     BH = window number
  9201.     BL = socket number
  9202.     CX = window size (bytes if I/O window, 4K units if memory window)
  9203.     DH = window attributes (see #0529)
  9204.     DL = access speed (only one bit set) (see #0525)
  9205.     SI = window base address (bytes if I/O, 4K units if memory window)
  9206.     DI = card offset addrress (memory only, 4K units)
  9207. Return: CF clear if successful
  9208.         AH destroyed
  9209.     CF set on error
  9210.         AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0507)
  9211. SeeAlso: AH=87h,AH=88h,AH=8Bh
  9212. --------X-1A8A-------------------------------
  9213. INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
  9214.     AH = 8Ah
  9215.     AL = adapter number
  9216.     BH = window number
  9217.     BL = page number
  9218. Return: CF clear if successful
  9219.         AH destroyed
  9220.         DX = page attributes (see #0530)
  9221.         DI = memory card offset (4K units)
  9222.     CF set on error
  9223.         AH = error code (01h,08h,11h) (see #0507)
  9224. Notes:    this function is only valid for memory-mapped windows
  9225.     the socket being operated on is implied by the previous AH=89h call
  9226. SeeAlso: AH=88h,AH=8Bh
  9227.  
  9228. Bitfields for PCMCIA page attributes:
  9229. Bit(s)    Description    (Table 0530)
  9230.  0    page enabled
  9231.  15-1    reserved (0)
  9232. --------X-1A8B-------------------------------
  9233. INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
  9234.     AH = 8Bh
  9235.     AL = adapter number
  9236.     BH = window number
  9237.     BL = page number
  9238.     DX = page attributes (see #0530)
  9239.     DI = memory card offset (4K units)
  9240. Return: CF clear if successful
  9241.         AH destroyed
  9242.     CF set on error
  9243.         AH = error code (01h,02h,07h,08h,11h) (see #0507)
  9244. Notes:    this function is only valid for memory-mapped windows
  9245.     the socket being operated on is implied by the previous AH=89h call
  9246. SeeAlso: AH=89h,AH=8Ah
  9247. --------X-1A8C-------------------------------
  9248. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
  9249.     AH = 8Ch
  9250.     AL = adapter number
  9251.     BL = socket number (01h to maximum supported by adapter)
  9252. Return: CF clear if successful
  9253.         AH destroyed
  9254.         DH = capabilities (see #0531)
  9255.         DL = hardware indicators (see #0532)
  9256.         DS:SI -> Socket Characteristics table (see #0533)
  9257.         DS:DI -> Power Management table (see #0535)
  9258.     CF set on error
  9259.         AH = error code (01h,0Bh) (see #0507)
  9260. SeeAlso: AH=87h,AH=8Dh,AH=8Eh
  9261.  
  9262. Bitfields for PCMCIA socket capabilities:
  9263. Bit(s)    Description    (Table 0531)
  9264.  0    card change
  9265.  1    card lock
  9266.  2    insert card (motor control)
  9267.  3    eject card (motor control)
  9268.  4-7    reserved (0)
  9269.  
  9270. Bitfields for PCMCIA socket hardware indicators:
  9271. Bit(s)    Description    (Table 0532)
  9272.  0    busy status
  9273.  1    write-protected
  9274.  2    battery status
  9275.  3    card lock status
  9276.  4    XIP status (eXecute-In-Place)
  9277.  5-7    reserved (0)
  9278.  
  9279. Format of PCMCIA Socket Characteristics table:
  9280. Offset    Size    Description    (Table 0533)
  9281.  00h    WORD    supported card types (see #0534)
  9282.  02h    WORD    steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
  9283.  04h    WORD    additional steerable IRQ levels
  9284.         bit 0: NMI
  9285.         bit 1: I/O check
  9286.         bit 2: bus error
  9287.         bit 3: vendor-unique
  9288.         bits 4-7 reserved (0)
  9289.  
  9290. Bitfields for supported card types:
  9291. Bit(s)    Description    (Table 0534)
  9292.  0    memory card
  9293.  1    I/O card
  9294.  2-7    reserved (0)
  9295.  
  9296. Format of PCMCIA Power Management table:
  9297. Offset    Size    Description    (Table 0535)
  9298.  00h    WORD    number of entries in table (0 if power management not avail)
  9299.  02h 2N BYTEs    power levels
  9300.         byte 0: voltage in 0.1V units
  9301.         byte 1: power supply
  9302.             bit 7: Vcc
  9303.             bit 6: Vpp1
  9304.             bit 5: Vpp2
  9305. --------X-1A8D-------------------------------
  9306. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
  9307.     AH = 8Dh
  9308.     AL = adapter number
  9309.     BL = socket number (01h to maximum supported by adapter)
  9310. Return: CF clear if successful
  9311.         AH destroyed
  9312.         BH = status change interrupt enable mask (see #0509)
  9313.         CH = Vcc level (lower nybble) (see #0535)
  9314.         CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  9315.         DH = current socket status (see #0510)
  9316.         DL = indicators (see #0532)
  9317.         SI = card type (see #0536)
  9318.         DI = IRQ level steering (I/O only) (see #0537)
  9319.     CF set on error
  9320.         AH = error code (01h,0Bh) (see #0507)
  9321. SeeAlso: AH=8Ch,AH=8Eh
  9322.  
  9323. Bitfields for PCMCIA card type:
  9324. Bit(s)    Description    (Table 0536)
  9325.  0    memory
  9326.  1    I/O
  9327.  2-15    reserved (0)
  9328.  
  9329. Bitfields for PCMCIA I/O level steering:
  9330. Bit(s)    Description    (Table 0537)
  9331.  15    interrupt steering enabled
  9332.  14-5    reserved (0)
  9333.  4-0    IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
  9334. --------X-1A8E-------------------------------
  9335. INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
  9336.     AH = 8Eh
  9337.     AL = adapter number
  9338.     BL = socket number (01h to maximum supported by adapter)
  9339.     BH = status change interrupt enable mask (see #0509)
  9340.     CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  9341.     DH = current socket status (see #0510)
  9342.     DL = indicators (see #0532)
  9343.     SI = card type (see #0536)
  9344.     DI = IRQ level steering (I/O only) (see #0537)
  9345. Return: CF clear if successful
  9346.         AH destroyed
  9347.     CF set on error
  9348.         AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0507)
  9349. SeeAlso: AH=8Ch,AH=8Dh
  9350. --------X-1A8F-------------------------------
  9351. INT 1A - PCMCIA Socket Services v1.00 - GET CARD
  9352.     AH = 8Fh
  9353.     AL = adapter number
  9354.     BL = socket number (01h to maximum supported by adapter)
  9355. Return: CF clear if successful
  9356.         AH destroyed
  9357.         DL = current card status (see #0511)
  9358.     CF set on error
  9359.         AH = error code (01h,0Bh) (see #0507)
  9360. SeeAlso: AH=8Dh,AH=90h
  9361. --------X-1A90-------------------------------
  9362. INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
  9363.     AH = 90h
  9364.     AL = adapter number
  9365.     BL = socket number (01h to maximum supported by adapter)
  9366. Return: CF clear if successful
  9367.         AH destroyed
  9368.     CF set on error
  9369.         AH = error code (01h,0Bh,14h) (see #0507)
  9370. Note:    toggles RESET pin of the specified card, but does not wait after
  9371.       toggling the pin; it is the caller's responsibility to avoid
  9372.       accessing the card before it is ready again
  9373. --------X-1A91-------------------------------
  9374. INT 1A - PCMCIA Socket Services v1.00 - READ ONE
  9375.     AH = 91h
  9376.     AL = adapter number
  9377.     BL = socket number (01h to maximum supported by adapter)
  9378.     BH = attributes (see #0538)
  9379.     DX:SI = card address
  9380. Return: CF clear if successful
  9381.         AH destroyed
  9382.         CL/CX = value read
  9383.     CF set on error
  9384.         AH = error code (01h,07h,09h,0Bh,14h) (see #0507)
  9385.         CX may be destroyed
  9386. Note:    this function is only valid for I/O-mapped sockets
  9387. SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"IOCTL"
  9388.  
  9389. Bitfields for PCMCIA attributes:
  9390. Bit(s)    Description    (Table 0538)
  9391.  2    even bytes only
  9392.  1    word rather than byte
  9393.  0    attribute memory instead of common memory
  9394. --------X-1A92-------------------------------
  9395. INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
  9396.     AH = 92h
  9397.     AL = adapter number
  9398.     BL = socket number (01h to maximum supported by adapter)
  9399.     BH = attributes (see #0538)
  9400.     CL/CX = value to write
  9401.     DX:SI = card address
  9402. Return: CF clear if successful
  9403.         AH destroyed
  9404.     CF set on error
  9405.         AH = error code (01h,07h,0Bh,12h,14h) (see #0507)
  9406. Note:    this function is only valid for I/O-mapped sockets; it also does not
  9407.       implement Card Technology handling--use AH=94h when writing to
  9408.       non-RAM technologies
  9409. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"IOCTL"
  9410. --------X-1A93-------------------------------
  9411. INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
  9412.     AH = 93h
  9413.     AL = adapter number
  9414.     BL = socket number (01h to maximum supported by adapter)
  9415.     BH = attributes (see #0538)
  9416.     CX = number of bytes or words to read
  9417.     DX:SI = card address
  9418.     DS:DI -> data buffer to be filled
  9419. Return: CF clear if successful
  9420.         AH destroyed
  9421.     CF set on error
  9422.         AH = error code (01h,07h,09h,0Bh,14h) (see #0507)
  9423. Note:    this function is only available on I/O-mapped sockets
  9424. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"IOCTL"
  9425. --------X-1A94-------------------------------
  9426. INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
  9427.     AH = 94h
  9428.     AL = adapter number
  9429.     BL = socket number (01h to maximum supported by adapter)
  9430.     BH = attributes (see #0538)
  9431.     CX = number of bytes or words to read
  9432.     DX:DI = card address
  9433.     DS:SI -> buffer containing data
  9434.     BP = Card Technology type (0000h = RAM)
  9435. Return: CF clear if successful
  9436.         AH destroyed
  9437.     CF set on error
  9438.         AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0507)
  9439. Notes:    this function is only available on I/O-mapped sockets
  9440.     Socket Services calls the Card Technology callback (see #0512) for
  9441.       any card technology it does not directly support
  9442. SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"IOCTL"
  9443. --------X-1A95-------------------------------
  9444. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
  9445.     AH = 95h
  9446.     AL = adapter number
  9447.     BH = EDC generator number
  9448. Return: CF clear if successful
  9449.         AH destroyed
  9450.         CX = bitmap of assignable sockets
  9451.         DH = EDC capabilities (see #0539)
  9452.         DL = supported EDC types (see #0540)
  9453.     CF set on error
  9454.         AH = error code (01h,04h) (see #0507)
  9455. SeeAlso: AH=96h,AH=9Ch
  9456.  
  9457. Bitfields for EDC capabilities:
  9458. Bit(s)    Description    (Table 0539)
  9459.  0    unidirectional only generation
  9460.  1    bidirectional only generation
  9461.  2    register-based (I/O-mapped) support
  9462.  3    memory-mapped support
  9463.  4    pausable
  9464.  5-7    reserved (0)
  9465.  
  9466. Bitfields for supported EDC types:
  9467. Bit(s)    Description    (Table 0540)
  9468.  0    8-checksum
  9469.  1    16-CRC-SDLC
  9470.  2-7    reserved (0)
  9471. --------X-1A96-------------------------------
  9472. INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
  9473.     AH = 96h
  9474.     AL = adapter number
  9475.     BH = EDC generator number
  9476. Return: CF clear if successful
  9477.         AH destroyed
  9478.         BL = socket number
  9479.         DH = EDC attributes (see #0541)
  9480.         DL = EDC type (see #0540) (only one bit set)
  9481.     CF set on error
  9482.         AH = error code (01h,04h) (see #0507)
  9483. SeeAlso: AH=95h,AH=97h,AH=9Ch
  9484.  
  9485. Bitfields for EDC attributes:
  9486. Bit(s)    Description    (Table 0541)
  9487.  0    unidirectional only
  9488.  1    (if 0 set) clear=read, set=write
  9489.  2-7    reserved (0)
  9490. --------X-1A97-------------------------------
  9491. INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
  9492.     AH = 97h
  9493.     AL = adapter number
  9494.     BH = EDC generator
  9495.     BL = socket number
  9496.     DH = EDC attributes (see #0541)
  9497.     DL = EDC type (see #0540) (only one bit may be set)
  9498. Return: CF clear if successful
  9499.         AH destroyed
  9500.     CF set on error
  9501.         AH = error code (01h,02h,04h,0Bh) (see #0507)
  9502. SeeAlso: AH=96h,AH=9Ch
  9503. --------X-1A98-------------------------------
  9504. INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
  9505.     AH = 98h
  9506.     AL = adapter number
  9507.     BH = EDC generator
  9508. Return: CF clear if successful
  9509.         AH destroyed
  9510.     CF set on error
  9511.         AH = error code (01h,04h) (see #0507)
  9512. SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
  9513. --------X-1A99-------------------------------
  9514. INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
  9515.     AH = 99h
  9516.     AL = adapter number
  9517.     BH = EDC generator
  9518. Return: CF clear if successful
  9519.         AH destroyed
  9520.     CF set on error
  9521.         AH = error code (01h,04h) (see #0507)
  9522. SeeAlso: AH=9Ah
  9523. --------X-1A9A-------------------------------
  9524. INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
  9525.     AH = 9Ah
  9526.     AL = adapter number
  9527.     BH = EDC generator
  9528. Return: CF clear if successful
  9529.         AH destroyed
  9530.     CF set on error
  9531.         AH = error code (01h,04h) (see #0507)
  9532. SeeAlso: AH=99h,AH=98h
  9533. --------X-1A9B-------------------------------
  9534. INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
  9535.     AH = 9Bh
  9536.     AL = adapter number
  9537.     BH = EDC generator
  9538. Return: CF clear if successful
  9539.         AH destroyed
  9540.     CF set on error
  9541.         AH = error code (see #0507)
  9542. SeeAlso: AH=98h,AH=99h,AH=9Ch
  9543. --------X-1A9C-------------------------------
  9544. INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
  9545.     AH = 9Ch
  9546.     AL = adapter number
  9547.     BH = EDC generator
  9548. Return: CF clear if successful
  9549.         AH destroyed
  9550.         DL/DX = computed checksum or CRC
  9551.     CF set on error
  9552.         AH = error code (01h,04h) (see #0507)
  9553. SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
  9554. --------X-1A9D-------------------------------
  9555. INT 1A - Intel PCMCIA ExCA Card Services - API
  9556.     AH = 9Dh
  9557.     AL = subfunction (see #0542)
  9558.     ???
  9559. Return: ???
  9560. Note:    this API is supported by recent versions of the AMI BIOS
  9561.  
  9562. (Table 0542)
  9563. Values for PCMCIA ExCA Card Services subfunction number:
  9564.  00h    Client Services: Get Number of Sockets
  9565.  01h    Advanced Client Utilities: Initialize
  9566.  02h    Client Services: Register Client
  9567.  03h    Client Services: Deregister Client
  9568.  04h    Advanced Client Utilities: Enumerate Clients
  9569.  05h    Client Services: Register SCB
  9570.  06h    Client Services: Deregister SCB
  9571.  07h    Advanced Client Utilities: Register MTD
  9572.  08h    Advanced Client Utilities: Deregister MTD
  9573.  09h    Advanced Client Utilities: Enumerate MTD
  9574.  0Ah    Client Services: Get Status
  9575.  0Bh    Client Services: Reset Card
  9576.  0Ch    Client Utilities: Get First Tuple
  9577.  0Dh    Client Utilities: Get Next Tuple
  9578.  0Eh    Client Utilities: Determine First Region
  9579.  0Fh    Client Utilities: Determine Next Region
  9580.  10h    Client Utilities: Get First Region
  9581.  11h    Client Utilities: Get Next Region
  9582.  12h    Client Utilities: Get First Partition
  9583.  13h    Client Utilities: Get Next Partition
  9584.  14h    Bulk Memory Services: Open Region
  9585.  15h    Bulk Memory Services: Read Memory
  9586.  16h    Bulk Memory Services: Write Memory
  9587.  17h    Bulk Memory Services: Copy Memory
  9588.  18h    Bulk Memory Services: Erase Memory
  9589.  19h    Resource Management: Request I/O
  9590.  1Ah    Resource Management: Release I/O
  9591.  1Bh    Resource Management: Request Memory
  9592.  1Ch    Client Services: Modify Window
  9593.  1Dh    Resource Management: Release Memory
  9594.  1Eh    Client Services: Map Mem Page
  9595.  1Fh    Advanced Client Utilities: Return SS Entry
  9596.  20h    Advanced Client Utilities: Map Log to Phy
  9597.  21h    Advanced Client Utilities: Map Log Phy to Log
  9598.  22h    Resource Management: Request IRQ
  9599.  23h    Resource Management: Release IRQ
  9600.  24h    Bulk Memory Services: Close Region
  9601. --------X-1A9E-------------------------------
  9602. INT 1A - PCMCIA Socket Services v2.1 - ???
  9603.     AH = 9Eh
  9604.     ???
  9605. Return: CF clear if successful
  9606.     CF set on error
  9607.         AH = error code (01h,18h)
  9608.     ???
  9609. --------X-1A9F-------------------------------
  9610. INT 1A - PCMCIA Socket Services v2.1 - ???
  9611.     AH = 9Fh
  9612.     ???
  9613. Return: CF clear if successful
  9614.     CF set on error
  9615.         AH = error code (01h,18h)
  9616.     ???
  9617. SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
  9618. --------c-1AA0-------------------------------
  9619. INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
  9620.     AH = A0h
  9621. Return: AH = B0h if installed
  9622.         AL = pending INT 1A/AH=D0h subfunction if nonzero???
  9623.         ES = code segment
  9624.         ES:BX -> name of current spool file
  9625.         ES:SI -> current despool file
  9626.         CL = despooler state (00h disabled, 41h enabled)
  9627.         CH = spooler state (00h disabled, 41h enabled)
  9628.         DL = despooler activity
  9629.         00h currently active printing a file
  9630.         41h standing by
  9631.         DH = 00h ???
  9632.            = 41h ???
  9633.         DI = 0000h ???
  9634.          0001h ???
  9635. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  9636.       Software Company
  9637. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  9638.       as that is a licensed version of Disk Spool II
  9639. SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
  9640. --------X-1AA0-------------------------------
  9641. INT 1A - PCMCIA Socket Services v2.1 - ???
  9642.     AH = A0h
  9643.     ???
  9644. Return: CF clear if successful
  9645.     CF set on error
  9646.         AH = error code (01h,18h)
  9647.     ???
  9648. SeeAlso: AH=9Fh,AH=AEh
  9649. --------c-1AAB-------------------------------
  9650. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  9651.     AH = ABh
  9652. Return: AH = BAh if installed
  9653.         AL = pending INT 1A/AH=ADh subfunction if nonzero???
  9654.         ES = code segment
  9655.         ES:BX -> name of current spool file
  9656.         ES:SI -> current despool file
  9657.         CL = despooler state (00h disabled, 41h enabled)
  9658.         CH = spooler state (00h disabled, 41h enabled)
  9659.         DL = despooler activity
  9660.         00h currently active printing a file
  9661.         41h standing by
  9662.         DH = 00h ???
  9663.            = 41h ???
  9664.         DI = 0000h ???
  9665.          0001h ???
  9666. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  9667.       Software Company
  9668. SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
  9669. --------c-1AAC-------------------------------
  9670. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  9671.     AH = ACh
  9672. Return: (see AH=ABh)
  9673. Note:    this function is identical to AH=ABh
  9674. SeeAlso: AH=A0h,AH=ABh,AH=ADh
  9675. --------c-1AAD-------------------------------
  9676. INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
  9677.     AH = ADh
  9678.     AL = function code (see #0543)
  9679. Return: AH = 00h if successful
  9680. SeeAlso: AH=ABh
  9681.  
  9682. (Table 0543)
  9683. Values for Disk Spool function code:
  9684.  02h    enable spooler only
  9685.  03h    enable the despooler
  9686.  04h    disable the despooler
  9687.  08h    inhibit popup menu
  9688.  09h    enable popup menu
  9689.  0Ah    ???
  9690.  0Bh    disable the spooler
  9691.  0Ch    start despooler after last successfully printed document???
  9692.  0Dh    start despooler at the exact point where it last left off???
  9693.  0Eh    pop up the menu
  9694.  0Fh    ???
  9695.  11h    ???
  9696.  14h    ???
  9697.  15h    ???
  9698.  16h    ???
  9699.  17h    ???
  9700.  18h    ???
  9701.  19h    ???
  9702.  20h    clear file pointed to by the despooler???
  9703.  21h    ???
  9704.  22h    ???
  9705.  23h    ???
  9706.  30h    ???
  9707. --------X-1AAE-------------------------------
  9708. INT 1A - PCMCIA Socket Services v2.1 - API
  9709.     AH = AEh
  9710.     SI = function
  9711.         0002h ???
  9712.         0100h ???
  9713.         0101h ???
  9714.         8000h ???
  9715.         8001h ???
  9716.     details not yet available
  9717. Return: CF clear if successful
  9718.     CF set on error
  9719.         AH = error code
  9720.         02h ???
  9721.         0Bh ???
  9722.         11h ???
  9723.         15h invalid function
  9724.         17h ???
  9725. --------X-1AAF-------------------------------
  9726. INT 1A - PCMCIA v2 - API
  9727.     AH = AFh
  9728.     details not yet available
  9729. --------!---Section--------------------------
  9730.